私は画像の改善をしようとしています。ここでは、最初にrgbイメージをhsiイメージに変更し、次に強度のヒストグラム均等化を行います。ヒストグラムの均等化について、私はまず画素のpdfを見つけ、それからcmfです。しかし、私はcmfの均等化を行う方法を知らない。私はウェブサイトを検索しましたが、ほとんどの人がcmf * 255を作っていますが、これを画像にどのようにマッピングしているのか分かりません。ヒストグラム均等化matlab
histogram=imhist(I);//the intensity histogram
s=sum(histogram(:));
pdf=histogram/s;
cmf(1)=pdf(1);//calculate the cmf
for i=2:1:256
cmf(i)=pdf(i)+cmf(i-1);
map_value(i)=round(cmf(i).*255);//try to scale the level
end
//following I reference the code on website
for i=1:image_row
for j=1:image_column
new_image(i,j)=map_value(I(i,j)+1);
end
end
しかし、参照部では、「下付き文字インデックスは、実際の正の整数または論理名のいずれかでなければならない。」と表示します 私の新しいイメージとequlizationヒストグラムの間のエラーについて私は考えていません。 誰かに何か考えてもらえますか?
ところで、私はコードを試しましたhttps://angeljohnsy.blogspot.com/2011/04/matlab-code-histogram-equalization.html しかし、コードはfreq(value + 1)= freq(value + 1)+1で動作しません。
先に変数を初期化してください。メモリを少なくし、時間を短縮し、コードをより安全にします。例えば、 'new_image = 0(image_row、image_column);' – Bentoy13