2017-11-10 22 views
0

私は画像の改善をしようとしています。ここでは、最初に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で動作しません。

+0

先に変数を初期化してください。メモリを少なくし、時間を短縮し、コードをより安全にします。例えば、 'new_image = 0(image_row、image_column);' – Bentoy13

答えて

0

組み込みのMATLAB関数histeqを使用することができます。

関連する問題