プロが教えるわが家の防犯対策術!

グレースケール画像を量子化する問題で、量子化レベル数を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文以下で表現しました。
ここまでやってみましたがあとがよくわかりません。
教えてください。
どうかよろしくお願いします。

A 回答 (1件)

「ある個数の0~N-1の整数の中から、それぞれがいくつあるか数えて、その度数を表示する」


というのは作れますか?

>f1=dn*i;

とありますが、このiの注目すれば0~N-1ですよね?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!