• 締切済み

グレースケール画像を量子化する問題で、量子化レベル数を8階調(N=8)

グレースケール画像を量子化する問題で、量子化レベル数を8階調(N=8)と設定して画像h=(Ih,Ih,Ih)を生成し、その輝度ヒストグラムを生成せよという問題なのですが。 printf("量子レベル数Nを入力してください"); scanf("%d",&n); dn=256/n; for(j=0;j<nHeight;j++) for(k=0;k<nWidth;k++){ rVal=DllBmpGetPixelValueR(pBmpOrig, j, k); for(i=0;i<n;i++){ if(dn*i<=rVal&&dn*(i+1)>rVal){ f1=dn*i; } DllBmpSetPixelValueR(pBmpCopy1, j, k, f1); DllBmpSetPixelValueG(pBmpCopy1, j, k, f1); DllBmpSetPixelValueB(pBmpCopy1, j, k, f1); ※nHeight:高さ nWidth:幅 rVal=DllBmpGetPixelValueR(pBmpOrig, j, k):赤色成分の輝度値を得る 量子化の公式ΔN=256/N I(x,y)=n*ΔN ifn*ΔN≦I(x,y)<(n+1)*ΔN for∀n={0,N-1} をif文以下で表現しました。 ここまでやってみましたがあとがよくわかりません。 教えてください。 どうかよろしくお願いします。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

「ある個数の0~N-1の整数の中から、それぞれがいくつあるか数えて、その度数を表示する」 というのは作れますか? >f1=dn*i; とありますが、このiの注目すれば0~N-1ですよね?

関連するQ&A

専門家に質問してみよう