1、数字图像处理实验报告matlab 学院: 信息工程学院的吧班级: 姓名: 学号: 402010年10月实验一 直方图均衡化实验目的:1. 熟悉图像数据在计算机中的存储方式;2. 掌握图像直方图均衡化这一基本处理过程。实验条件:PC微机一台和MATLAB软件。实验内容:读入图像数据到内存中,并显示读入的图像;实现直方图均衡化处理,显示处理前后图像的直方图。显示并保存处理结果。实验步骤:1打开Matlab编程环境;2. 获取实验用图像:使用imread函数将图像读入Matlab;并用inshow函数显示读入的图像。3. 获取输入图像的直方图:使用inhist函数处理图像。4. 均衡化处理:使用hi
2、steq函数处理图像即可。5. 获取均衡化后的直方图并显示图像:使用imhist和imshow函数。实验程序及结果:实验一clearsubplot(6,2,1);i=imread(test1-1.jpg);imhist(i);title(test1-1hist);subplot(6,2,2);i=im2double(i);imshow(i);title(test1-1原图像);subplot(6,2,3);s=histeq(i);imhist(s);title(test1-1balancedhist);subplot(6,2,4);imshow(s);title(test1-1均衡化后的图像)
3、;subplot(6,2,5);i=imread(test1-2.jpg);imhist(i);title(test1-2hist);subplot(6,2,6);i=im2double(i);imshow(i);title(test1-2原图像);subplot(6,2,7);s=histeq(i);imhist(s);title(test1-2balancedhist);subplot(6,2,8);imshow(s);title(test1-2均衡化后的图像);i=imread(test1-3.jpg);imhist(i);title(test1-3hist);subplot(6,2,1
4、0);i=im2double(i);imshow(i);title(test1-3原图像);subplot(6,2,11);s=histeq(i);imhist(s);title(test1-3balancedhist);subplot(6,2,12);imshow(s);title(test1-3均衡化后的图像);实验思考数字图像直方图均衡化之后直方图为什么不是绝对平坦的?直方图均衡化是将一已知灰度概率密度分布的图像,经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像,对图像进行均衡化处理时,只是将直方图上灰度分布较密的部分被拉伸;灰度分布稀疏的部分被压缩,从而使一幅图像的对比度在总体上
5、得到很大的增强。因此均衡化之后直方图不是绝对平坦的。对图像中每个像素点所在的邻域范围求出灰度转换函数,然后仅仅应用在该中心点处。先在定义的邻域内计算灰度直方图,然后利用这一直方图来获得关于直方图均衡化的灰度变换函数。利用这一变换函数,就可以实现该邻域内中心像素点的增强。接下来将邻域的中心移到相邻的像素并重复以上过程。如何实现图像局部直方图均衡化?对图像中每个像素点所在的邻域范围求出灰度转换函数,然后仅仅应用在该中心点处。先在定义的邻域内计算灰度直方图,然后利用这一直方图来获得关于直方图均衡化的灰度变换函数。利用这一变换函数,就可以实现该邻域内中心像素点的增强。接下来将邻域的中心移到相邻的像素并
6、重复以上过程。实验二 频域平滑滤波实验目的:1. 熟悉图像数据在频率域的表示;2. 掌握频域图像增强的基本步骤。实验条件:PC微机一台和MATLAB软件。实验内容:1. 综合利用所学的数字图像基本存储结构、图像变换、图像增强等知识实现频率域图像增强;2. 在频率域进行用半径值分别为5,15,30,80和230的理想低通滤波器对图像进行平滑,并观察滤波效果。实验步骤:1.打开Matlab编程环境;2.利用imread函数读入图像数据;3.利用imshow显示所读入的图像数据;4.将图像数据由uint8格式转换为double格式,并将各点数据乘以(-1)x+y以便FFT变换后的结果中低频数据处于图
7、像中央;5.用fft2函数对图像数据进行二维FFT变换,得到频率域图像数据;6.计算频率域图像的幅值并进行对数变换,利用imshow显示频率域图像;7.在频率图像上去除滤波半径以外的数据(置0);8.计算频率域图像的幅值并进行对数变换,利用imshow显示处理过的频域图像数据;9.用ifft2函数对图像数据进行二维FFT逆变换,并用real函数取其实部,得到处理过的空间域图像数据;10.将图像数据各点数据乘以(-1)x+y;11.利用imshow显示处理结果图像数据;12.利用imwrite函数保存图像处理结果数据。实验程序及结果:Function idlvbo(r)I=imread(test
8、2.jpg);subplot(1,2,1),imshow(I);title(test2原图像);f=double(I);g=fft2(f);g=fftshift(g);M,N=size(g);m=fix(M/2);n=fix(N/2);clcfor i=1:Mforj=1:Nd=sqrt(i-m)2+(j-n)2);if drh=0;else h=1;end result(i,j)=h*g(i,j);endendresult=ifftshift(result);J1=ifft2(result);J2=uint8(real(J1);subplot(1,2,2),imshow(J2);title(
9、理想低通滤波处理后的图象);imwrite(J2,J2.jpg)数字图像处理r=5的图形r=15的图形r=30的图形r=80的图形r=160的图形r=230的图形实验思考1. 在FFT变换前后,为什么要将各点数乘以-1的(xy)次方?不乘能否实现低滤波?在FFT变换前后,将各点数乘以-1的(xy)次方,是为了将图像处理后它的中低频数据处于图像中央位置。2. 与空间域图像增强相比,频率域图像处理有什么优点?频率域图像处理是把图像看成一种二维信号,对其进行基于二维傅里叶变换的信号增强;空间域图像增强的方法是直接对图像中的像素进行处理的过程。实验三 图像去噪实验目的:1. 熟悉图像高斯噪声的特点;2
10、. 掌握利用中值滤波器去除图像噪声的方法。实验条件:PC微机一台和MATLAB软件。实验内容:编写代码实现中值滤波算法,并观察增强效果。实验步骤:1.打开Matlab编程环境;2.利用imread函数读入包含噪声的原始图像数据;3.利用imshow显示所读入的图像数据;4.编写代码实现中值滤波和均值滤波算法,对原始噪声图像进行滤波处理;5.利用imshow显示处理结果图像数据;6.利用imwrite函数保存图像处理结果数据。实验程序及结果:I=imread(test3.jpg);subplot(1,3,1);imshow(I);title(test3原图);K=fspecial(average
11、,5);K1=filter2(K,I)/255;subplot(1,3,2);imshow(K1);title(均值滤波所得图像);imwrite(K1,K1.jpg);L=medfilt2(I,55);subplot(1,3,3);imshow(L);title(中值滤波所得图像);imwrite(L,L.jpg);实验思考1. 与均值滤波相比,中值滤波算法的处理速度是快还是慢?中值滤波快,因为均值滤波就是对一个像素,取其周围的像素均值作为当前像素的值,而中值滤波就是对一个像素,取其周围的像素中间值作为当前像素的值,不用求均值,因此中值滤波算法快。2. 如何实现中点滤波算法,它的速度比中值滤
12、波算法快还是慢?先得到图像的频域空间,然后对得到的二维空间数据进行比较得到最大值和最小值,对这两个值求平均值即可得到!它比中值滤波算法要慢。实验总结:1、图像直方图均衡化首先要统计原始图像的直方图,求出Pr(rk);然后用累积分布函数作变换,求变换后的新灰度;用新灰度代替旧灰度,求出Ps(rk)。但均衡后的直方图并不是严格的矩形。 2、频域图像增强的基本步骤:把图像信号经过一定的变换使其从空间域变换到频率域,从频率的角度来分析图像信号的特性。再对图像频率域按需要进行处理,将处理的结果进行反变换到空间域,达到图像增强的目的。3、用中值滤波器去噪:设定像素点的领域,对该领域的滑动窗口内的所有灰度值排序,用其灰度的中值作为被处理像素点的灰度值。4、处理图像的常用函数有:imread,imshow,imhist,histeq,medfilt2,hist,imwrite等。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1