直方图和直方图均衡的Matlab 完整程序(数字图像处理) 一、实验目的 掌握基本的图象增强方法,观察图象增强的效果,加深对灰度直方图及直方图均衡化的理解,掌握直方图均衡化方法。 二、实验内容 将一张彩色图片转换成灰色图片,画灰度直方图和均衡化后的直方图,并将灰度图和均衡化后的图片对比。 三、实验原理 灰度直方图是将数字图像中的所有像素,按照灰度值的大小,统计其所出现的频度。通常,灰度直方图的横坐标表示灰度值,纵坐标为像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。 直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。从而达到清晰图像的目的。 四、实验程序 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %函数功能,画出图像的直方图,并对图像进行直方图均衡 %直接读图像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(...