matlab实现灰度直⽅图均匀化p=imread('test.jpg');
figure(1);
imshow(p);
p=rgb2gray(p); %转换为灰度图像
figure(11);
imshow(p);
figure(2);
imhist(p); %显⽰灰度分布图
figure(1234);
histgram=zeros(1,256); %灰度统计数组
[m,n]=size(p);
for i=1:m
for j=1:n
k=p(i,j);
histgram(k+1)=histgram(k+1)+1;
end
end
x=1:255;
plot(x,histgram(x));
%以上为灰度的分布情况
%计算每⼀个点的概率值
all=m*n;
histgram(1)=histgram(1)/all;
for i=2:255
histgram(i)=histgram(i)/all;
histgram(i)=histgram(i-1)+histgram(i);
end
figure(3);
x=1:255;
plot(x,histgram(x));
%开始计算新的灰度值
for i=1:m
for j=1:n
k=p(i,j);
p(i,j)=histgram(k+1)*256;
end
end
%显⽰直⽅均匀化后的图像
figure(4);
imshow(p);
imhist(p);
>matlab直方图
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论