matlab 繪製直方圖的函式實現
阿新 • • 發佈:2019-01-09
x=rgb2gray(imread('p1.jpg'));
[m,n]=size(x);
p=zeros(1,256);
for i=0:255
p(i+1)=length(find(x==i))/(m*n);
end
subplot(2,2,1);
bar(0:255,p,'b');
title('原圖直方圖');
s=zeros(1,256);
for i=1:256
for j=1:i
s(i)=p(j)+s(i);
end
end
a=round(s*255); %四捨五入函式進行畫素點的取整
for i=0:255
GPeq(i+1)=sum(p(find(a==i))); %利用求和函式對直方圖縱軸座標賦值
end
subplot(2,2,3);
bar(0:255,GPeq,'b')
title('均衡化後的直方圖');
系統均衡化的函式:
g=histeq(f,nlev);%f為輸入影象,nlev為輸出影象指定的灰度級,一般預設為64
EXAPLE:
f=imread('1.jpg');
g=rgb2gray(f);
figure,imhist(g);
ylim('auto')
g1=histeq(f,256);
figure,imshow(g1);
figure,imhist(g1);
ylim('auto')