求用MATLAB显示灰度图像的直方图的 *** 作详细步骤,小白求!

求用MATLAB显示灰度图像的直方图的 *** 作详细步骤,小白求!,第1张

1、打开MATLAB需要处理的图像,然后再下面写出代码是:pic[i,j]=(255)/(u*v)*sum(c[:int(img[i,j])])。

2、然后接下来拿掘就可以看到消胡核图像均衡化的图片。

3、最后,画出均衡化图片的直方做老图如图所示,衡化前后,图片对比一下,这样就可以解决问题了。

%函数功能,画出图像的直方图,并对图像进行直方图均衡

%直接读图像abc.jpg,读到tuu中

%graydis是原始直方图各灰度级像素个数

%原始直方图graydispro,利用原始直方图计算原始累计直方图graydispro

%t[]计算和原始灰度对应的新的灰度扒春t[],建立映射关系,t坐标代表原始的灰度,t[]代表对应原始坐标的新坐标

%new_graydis是统计新直方图各灰度级像素个数

%计算新的灰度直方图new_graydispro,利用新的直方图计算新的累计直方图new_graydispro

%计算直方图均衡后的新图new_tu

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear

all

close

all

tuu=imread('abc.jpg')

%读桐洞入图片

tu=rgb2gray(tuu)

%将彩色图片转换为灰度图

graydis=zeros(1,256)

%设置矩阵大小

graydispro=zeros(1,256)

new_graydis=zeros(1,256)

new_graydispro=zeros(1,256)

[h

w]=size(tu)

new_tu=zeros(h,w)

%计算原始直方图各灰度级像素个数graydis

for

x=1:h

for

y=1:w

graydis(1,tu(x,y))=graydis(1,tu(x,y))+1

end

end

%计算原始直方图graydispro

graydispro=graydis./sum(graydis)

subplot(1,2,1)

plot(graydispro)

title('灰度直春轮耐方图')

xlabel('灰度值')ylabel('像素的概率密度')

%计算原始累计直方图

for

i=2:256

graydispro(1,i)=graydispro(1,i)+graydispro(1,i-1)

end

%计算和原始灰度对应的新的灰度t[],建立映射关系

for

i=1:256

t(1,i)=floor(254*graydispro(1,i)+0.5)

end

%统计新直方图各灰度级像素个数new_graydis

for

i=1:256

new_graydis(1,t(1,i)+1)=new_graydis(1,t(1,i)+1)+graydis(1,i)

end

%计算新的灰度直方图new_graydispro

new_graydispro=new_graydis./sum(new_graydis)

subplot(1,2,2)

plot(new_graydispro)

title('均衡化后的灰度直方图')

xlabel('灰度值')ylabel('像素的概率密度')

%计算直方图均衡后的新图new_tu

for

x=1:h

for

y=1:w

new_tu(x,y)=t(1,tu(x,y))

end

end

figure,imshow(tu,[])

title('原图')

figure,imshow(new_tu,[])

title('直方图均衡化后的图')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12533890.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存