数字图像处理期中大作业(邓建平)
- 格式:doc
- 大小:2.58 MB
- 文档页数:20
《数字图像处理》 期中大作业
姓名:邓建平 学号:24092200003 序号:07
湖南理工学院信息与通信工程学院 2012年4月 第一部分:IPT函数的应用 1、 读取并显示一张彩色图像,然后将其灰度化,并将灰度化后的结果存入计算机中,最后再将其二值化; 解答: (1)程序 f=imread('fan.jpg') %读入图像fan imshow(f) %显示图像fan g=rgb2gray(f) %调用灰度处理函数对fan进行灰度处理 figure,imshow(g) %显示原图,显示灰度处理后的图像g h=im2bw(g) %调用二值转换函数将图像g转换成二值图像 figure,imshow(h) %显示原图,显示灰度处理图像g,显示二值图像h imwrite(g,'g.jpg') %将灰度图像g写入计算机 imwrite(h,'g.jpg') %将二值图像h写入计算机 (2)运行结果
图1 原图 图2 进行灰度处理后的效果 图3 进行二值处理后的图像
(3)结果分析 调用灰度函数rgb2gray对图像进行灰度化,然后进行二值处理,默认阈值为0.5.可以看出图像的明显变化,趋于0的部分变亮,趋于1的部分变暗。 2、调用函数完成图像的DFT变换及平移 (1)程序 f5=rgb2gray(imread('fan.jpg')) %读入图像并进行灰度处理 imshow(f5) %显示图像 F=fft2(f5) %对图像进行DFT计算 S=abs(F) %得到频谱图 figure,imshow(S,[]) %显示原图及频谱图 Fc=fftshift(F) %进行图像的平移 figure,imshow(abs(Fc),[]) %显示之前图像,显示平移后图像 S2=log(1+abs(Fc)) %进行对数变换 figure,imshow(S2,[]) %显示图像 (2)运行结果
图1 灰度图像 2 进行DFT计算后图像 图3 平移后图像 图4 进行对数变换后图像 (3)结果分析 通过调用函数fft2进行DFT计算,然后利用fftshift将变换的原点平移到频率矩阵中心,可以明显 看到图像中心点的变化(图3),然后利用对数变化增强视觉效果(图4),结果变化明显,一目了然。
3、计算图像的直方图并对其进行均衡化和规定化; (1.1)直方图均衡化 (1)程序 f2=rgb2gray(imread('fan.jpg')); %读入图像fan,并进行灰度处理 imshow(f2); %显示灰度图像f2 figure,imhist(f2); %显示灰度图像f2,显示f2的直方图 ylim('auto'); %设定刻度线和取值范围 g2=histeq(f2,256); %对图像f2进行直方图均衡化处理,生成图像g2 figure,imshow(g2); %显示之前的所有图像,显示g2 figure,imhist(g2) %显示之前所有图像,显示g2的直方图 ylim('auto') %设定刻度线和取值范围 imwrite(f2,'f2.jpg') %将灰度图像f2写入计算机 imwrite(g2,'g2.jpg') %将均衡化后的图像g2写入计算机
(1.2)直方图均衡化运行结果:
图1 灰度处理后的图像f2 图2 f2直方图
图3均衡化处理后效果g2 图4 g2直方图
(2.1)直方图的规定化 (1)程序 f4=rgb2gray(imread('fan.jpg')) %读入图像fan,并进行灰度处理 imshow(f4) %显示灰度图像f4 imwrite(f4,'f4.jpg') %将灰度图像f4写入计算机 figure,imhist(f4) %得到f4直方图 ylim('auto') %设定刻度值和取值范围 xlim('auto') %设定刻度值和取值范围 g4=histeq(f4,[0 50 100 150 200 256])%进行直方图规定化,生成图像g4 figure,imshow(g4) %保持显示之前图像,显示g4 figure,imhist(g4) %保持显示之前图像,显示g4直方图 ylim('auto') %设定刻度值和取值范围 xlim('auto') %设定刻度值和取值范围 imwrite(g4,'g4.jpg') %将g4写入计算机
(2.2)直方图规定化运行结果:
图1 灰度图像f4 图2 f4直方图 图3 进行规定化之后的效果g4 图4 g4直方图 (3)结果分析 将直方图进行均衡化之后,不难发现直方图抽样点被拉伸,对比图1,图3的平均亮度和对比度的增强十分明显。均衡化后的图像的直方图中的灰度级平均值高于原始值。 而直方图规定化,是使图像获得最为匹配的效果。使图像按我们所设定的方向进行,进行图像的规定化。
4、调用噪声函数对读入的图像加噪,然后调用空间噪声滤波函数进行滤波,并对滤波效果进行分析 (1)程序 w=rgb2gray(imread('fan.jpg')) %将图像灰度化 imshow(w) %显示图像 k=imnoise(w,'salt & pepper') %加椒盐噪声 figure,imshow(k) %显示原图,显示被噪声污染的图像 k1=medfilt2(k) %使用中值滤波器滤波 figure,imshow(k1) %保留显示之前所有图像,并显示滤波后图像 imwrite(k,'k.jpg') %将噪声图像写入计算机 imwrite(w,'w.jpg') %见灰度图像写入计算机 (2)运行结果 图1 灰度图像w 图2 加椒盐噪声图像 图3 滤波处理后图像 (3)结果分析 首先得到灰度图像,然后加入默认噪声密度为0.05的椒盐噪声。得到被噪声轻度污染的图像(图2),然后用中值滤波器进行滤波,滤除椒盐噪声,且滤波效果良好,接近原图,较为清晰。
5、查找Matlab图像处理工具箱(IPT)中的亮度变换函数,并使用亮度变换函数完成一张灰度图片的亮度调整。 (1)程序 f1=rgb2gray(imread('fan.jpg')) %读入图像fan并进行灰度处理 g1=imadjust(f1,[0.5 0.85],[0 1]) %对灰度图像f1进行亮度调整 imshow(f1),figure,imshow(g1) %显示灰度图像f1和亮度调整后图像g1 imwrite(f1,'f1.jpg') %将灰度图像f1写入计算机 imwrite(g1,'g1.jpg') %将亮度处理后的图像g1写入计算机 (2)运行结果 图1 原灰度图像 图2 进行亮度处理后的图像 (3)结果分析 调用亮度处理函数imadjust处理图像后,将0.5至0.85之间的灰度级拓展到[0 1]。突出其中的灰度级。由图2可以看出,图像的亮暗发生了明显的变化。
6、调用库函数,完成对加噪图像的滤波,并和空间滤波函数效果进行比较。 (1)程序 f6=imread('fanz.jpg') %读入噪声图像 h=fspecial('motion') %创建一个滤波器 g6=imfilter(f6,h) %空间滤波 imshow(f6),figure,imshow(g6) %显示噪声图像和滤波后图像 imwrite(g6,'g6.jpg') %将滤波后图像写入计算机 G6=medfilt2(f6) %调用库函数对噪声图像进行中值滤波 figure,imshow(G6) %显示滤波后图像 imwrite(G6,'G6.jpg') %将中值滤波后图像写入计算机
(2)运行结果
图1 噪声图像 图2 空间滤波处理后图像 图3调用库函数滤波后图像 (3)运行结果 通过分别调用空间滤波函数和库函数对图像进行滤波,不难发现,空间滤波函数在处理椒盐噪声图像始终不如中值滤波函数的处理效果好。中值滤波对于去除椒盐噪声效果明显,是因为椒盐噪声只在画面上的部分点随机出现,而中值滤波根据数据排序,将未被污染的点代替噪声点的值的概率较大,所以抑制效果好。
第二部分:自编函数完成下述算法 1、完成图像的几何变换算法设计,包括平移、旋转、缩放、错切等; (1)程序: .commond: clear close all clc I=imread('2.bmp');
%图像平移 figure outimage=imtranslate1(I,50,50); subplot(1,2,1),imshow(I),title('原图') subplot(1,2,2),imshow(outimage,[]),title('平移后图像')
%图像镜像 figure outimage_h=immirr(I,'horizontal'); outimage_v=immirr(I,'vertical'); outimage=immirr(I,'both'); subplot(2,2,1),imshow(I),title('原图') subplot(2,2,2),imshow(outimage_h,[]),title('水平镜像') subplot(2,2,3),imshow(outimage_v,[]),title('垂直镜像') subplot(2,2,4),imshow(outimage,[]),title('水平垂直镜像')