hist_eq.m

来自「Image histogram equalization」· M 代码 · 共 53 行

M
53
字号
clear all
image1=imread('high2.jpg');
l=256;

[m,n]=size(image1); 
len=m*n;
image2=reshape(image1,len,1);


histogram = hist(image2,[0:l-1]); 


cumhist(1)= histogram(1);
for i=2:l
    cumhist(i)= cumhist(i-1)+ histogram(i);
end

for i=1:l
    t(i)=round(((l-1)/(len))*cumhist(i));
end

newimage=zeros(len,1);

for i=2:l
    tx(i-1)=t(i)
end

for i=1:len
    if image2(i)~=0
        newimage(i)=tx(image2(i));
    else
        newimage(i)=t(1);
    end
end

finalimage=reshape(newimage,m,n);

finalhistogram=hist(newimage,[0:l-1]);


mean1=mean(image1);
mean2=mean(finalimage);

s2= std(finalimage);
%s1=std(image2);


figure(1),subplot(3,1,1),stem([0:l-1],histogram),title('histogram, original')
subplot(3,1,2),stem([0:l-1],t),title('transformation')
subplot(3,1,3),stem([0:l-1],finalhistogram),title('histogram, equalized')
figure(2),subplot(1,2,1),image(image1),colormap('gray'),title('original')
subplot(1,2,2),image(finalimage),colormap('gray'),title('equalized')

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?