2017-11-10 2 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을 사용할 수 있습니다.