用最簡單的代碼實現直方圖均衡化

有關於直方圖均衡化的原理我就不贅述了,想要理解的可以參考這裏點擊打開鏈接


l=imread('rice.png');

[height,width]=size(l);

figure

subplot(2,2,1);

imshow(l);

subplot(2,2,2);

imhist(l);

%進行像素灰度統計

NumPixel=zeros(1,256);

for i=1:height

    for j=1:width

        NumPixel(l(i,j)+1)= NumPixel(l(i,j)+1)+1;

    end

end


%計算灰度分佈密度

ProbPixel=zeros(1,256);

for i=1:256

    ProbPixel(i)=NumPixel(i)/(height*width*1.0);

end


%累計直方圖分佈

CumuPixel=zeros(1,256);

for i=1:256

    if i==1

        CumuPixel(i)=ProbPixel(i);

    else

        CumuPixel(i)=CumuPixel(i-1)+ProbPixel(i);

    end

end

CumuPixel=uint8(255.*CumuPixel+0.5);


%對灰度值進行映射

for i=1:height

    for j=1:width

        l(i,j)=CumuPixel(l(i,j));

    end

end

subplot(2,2,3)

imshow(l)

subplot(2,2,4)

imhist(l)



用到的圖片如下,下載下來文件名稱改成‘rice.png’即可


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章