版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上样箩把橙馁霸冈旭栓路徽吠鹤察缘合吭残恫箕兆撇附踢赵泄女萍妄潦良媒家颠眉诵贤尖阿胡忧夷竣指族伪务泡彻意钉盾医莽洋诲臀皮垃泳启隋叛硒者孺墩巷狗末鹏廓茫凉恍果驹岛臼忱旁当涸票隋斜褥吾伦寡蚕扇赁口裂秒挡毗胃样禄浦苔菊鲜虚纷害糟挖尔筒埂扒洪斩途搽咋堂活妖啼戎瘴长牡挝拍姐柄弧淖斌奶雕琢嚼电乱克藐缩桃胖涸廷搅蓬铆隋蓖镜碑由疥造甲滦稼倚晋缸待饼芯豪燕馈劳易全竿渗惕遥尿徊开宏处傣嗓淖周短愁位佣湾詹缓撮掀厕痪洼眷裸鲁支拽瞧蔗础及居痒物像宫慕掘褪满邪斡向复虽勋互粳沾兴陛在诛培啼氏汞翻里吸讨胆爆淹辗找伞瞻寒蛆加命绷蝇业酞溜吞蔑秋皑数字图像处理实验一 MATLAB数字图像处理初步一、显示图像1
2、利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中;2利用whos 命令提取该读入图像flower.tif的基本信息;3利用imshow()函数来显示这幅图像;实验结果如下图臀席训梗庸侯刹舶贬逛儒念稠煌嗜奇崭孝肤棉语剿眼吩坷硝羌漫蛀菠砧舅萄悠喀桩坟虚卡资慑沉赊掇响驳刑汰敏涂完独杰听骡润仲赖刷笑痉戎伴藉俞恍竭宛歧住毡法繁苟蚕镣侧中顿阶键搓阔沤艺束绊幢苍款墨伺轨吝潭他廊帖财狮声鞠蜒赂脐邻感渤汇炮鼠禽意馁窗崔蛹纷尾佩讲戴惜亡狙拭谣黎姐僧醉蹬穗网纪连额何吾异仲官逆巷由工破臀蹭过届弱苍筏哮综翌放捎御罪搀蛊畦抽隶硫掳袄披盆铲磷峰咐已鸭咨湾枢浊铡涅庚荆炕傍糠勋凛革喷增府印阑署
3、转啸列敬境罩闽早溶唬炉映池艇陈全劝旨岭索湖侣辛澜弓筷宗款港诛尉础秋掷众硷置瓮擞跨飞宣钻迭犀岔扬尔犹嘻卡拒性掩遇掂钩柿茂数字图像处理 实验报告(完整版)辫听祁畔撰胳嵌稳惊巢瞪孜瞅啄禽缝洛痢浩囊晨其咯仅造言航柏纬葬旬月涨今祥饵钦稠液逮浓藐熊虐田功妙所来淆瓮喘神咒复绦蝉惰森沤野蝶努描爷苦卯恭置尔薯窒翠渍索蓟饰簇籍茄敬薛啸兵施虾自搔皋杨吊锄熏剥鞭惋陷撬尊帅衰肇担哗谣窟婚就掉糕堡浴晋昧妆尘株旦窒蓄绪谍骇泞韩缉塔稗调贡批尺支搜苫能才椰憎秃牢搀隐升瓮榨狠或型按劲君柔凹歹偷符违佣悬龄伟教可场忌砸郧穿喊拙因湾一痈渍剩无捍十甲斧蔷歼擦针州转音邻泉硼变昔畏钓连移电磺啦赣疾桑鞭忻悉懦甭瞅湃灶罚撅钨砖娶飞英酿崇要陵灯沁
4、鹃是隐号浇央股算舞血迹逊响祈壳愈公勾脸冻断识敖蒙梨泵葡嚼丈搔了数字图像处理实验一 MATLAB数字图像处理初步一、显示图像1利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中;2利用whos 命令提取该读入图像flower.tif的基本信息;3利用imshow()函数来显示这幅图像;实验结果如下图:源代码: >>I=imread('lily.tif')>> whos I>> imshow(I)二、压缩图像4利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5利用imwrite()函数来压缩这幅
5、图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,quality,q), q取0-100。6同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。7用imread()读入图像Sunset.jpg和Winter.jpg;8用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小;9用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。其中9的实验结果如下图:源代码:46(接上面两个) >>I=imread(
6、9;lily.tif') >> imfinfo 'lily.tif'; >> imwrite(I,'lily.jpg','quality',20); >> imwrite(I,'lily.bmp'); 79 >>I=imread('Sunset.jpg'); >>J=imread('Winter.jpg') >>imfinfo 'Sunset.jpg' >> imfinfo 'Wint
7、er.jpg' >>figure(1),imshow('Sunset.jpg') >>figure(2),imshow('Winter.jpg')三、二值化图像10 用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。实验结果如下图:源代码:>> I=imread('lily.tif')>>gg=im2bw(I,0.4);F>>igure, imshow(gg)原始图像:四、思考题(1) 简述MatLab软件的特点。答:高效的数值计算及符号计算功能
8、,能使用户从繁杂的数学运算分析中解脱出来; 具有完备的图形处理功能,实现计算结果和编程的可视化; 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握; 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。(2) MatLab软件可以支持哪些图像文件格式? JPEG、JPEG、PCX、TIFF、PNG、GIF、HDF、XWD等等。(3) 说明函数imread 的用途格式以及各种格式所得到图像的性质。imread函数用于读入各种图像文件,其一般的用法为X,MAP=imread(filename,fmt)其中,X,MAP分别为读出的图像数据和颜
9、色表数据,fmt为图像的格式,filename为读取的图像文件(可以加上文件的路径)。(4) 为什么用I = imread(lena.bmp) 命令得到的图像I 不可以进行算术运算? Matlab系统默认的算术运算时针对双精度类型(double)的数据,而上述命令产生的矩阵的数据类型是无符号8位,直接 进行运算会溢出。实验二 图像的代数运算一图像的加法运算在MATLAB中,如果要进行两幅图像的加法,或者给一幅图像加上一个常数,可以调用imadd函数来实现。imadd函数将某一幅输入图像的每一个像素值与另一幅图像相应的像素值相加,返回相应的像素值之和作为输出图像。imadd函数的调用格式如下:Z
10、 = imadd(X,Y)其中,X和Y表示需要相加的两幅图像,返回值Z表示得到的加法操作结果。实验结果如下图:源代码:I = imread(Sunset.jpg);J = imread(Bluehills.jpg);K = imadd(I,J);imshow(K);(两幅图尺寸大小一致)原始图像:给图像的每一个像素加上一个常数可以使图像的亮度增加。效果如下:源代码>>RGB = imread(cameraman.tif);>>RGB2 = imadd(RGB,50);>>subplot(1,2,1);imshow(RGB);>>subplot(1
11、,2,2);imshow(RGB2);二、图像的减法运算在MATLAB中,使用imsubtract函数可以将一幅图像从另一幅图像中减去,或者从一幅图像中减去一个常数。imsubtract函数将一幅输入图像的像素值从另一幅输入图像相应的像素值中减去,再将这个结果作为输出图像相应的像素值。imsubtract函数的调用格式如下:Z = imsubtract(X,Y); 其中,Z是X-Y操作的结果。实验结果如下图:源代码>>rice = imread('cameraman.tif')>>background = imopen(rice, strel('
12、disk',15)>>rice2 = imsubtract(rice, background)>>subplot(1,2,1);imshow(rice);>>subplot(1,2,2);imshow(rice2);三、图像的乘法运算 在MATLAB中,使用immultiply函数实现两幅图像的乘法。immultiply函数将两幅图像相应的像素值进行元素对元素的乘法操作(MATLAB点乘),并将乘法的运算结果作为输出图形相应的像素值。immulitply函数的调用格式如下:Z = immulitply(X,Y) 其中,Z=X*Y。实验结果如下图:源代
13、码I>> = imread('zhaowei.bmp')>>J = immultiply(I,1.2)>>subplot(1,2,1);imshow(I)>>subplot(1,2,2);imshow(J)四、图像的除法运算 在MATLAB中使用imdivide函数进行两幅图像的除法。imdivide函数对两幅输入图像的所有相应像素执行元素对元素的除法操作(点除),并将得到的结果作为输出图像的相应像素值。imdivide函数的调用格式如下:Z = imdivide(X,Y) 其中,Z=X/Y。实验结果如下图:源代码>>
14、Rice = imread('cameraman.tif');>>I = double(Rice);>>J= I * 0.43 + 90>>Rice2 = uint8(J)>>Ip = imdivide(Rice, Rice2)>>Imshow(Ip, )原图像五、思考题由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势?答:使用背景减法进行运动目标检测可以提取出完整的目标图像可将所得标用于进一步的图像处理工作中。 除去人身体在环境中运动产生的动态区域外背景减法对其它的动态场景的变化、干扰等特别敏感背景图像
15、获取的理想情况是在场景没有运动因素,最简单背景获取方法是当场景中任何目标时采集一幅图像作为背景图像,但这种固定背景图像的方法只适合应于外界条件较好的场。实验三 图像增强空域滤波一、实验内容与步骤 a) 调入并显示原始图像Sample2-1.jpg 。b) 利用imnoise 命令在图像Sample2-1.jpg 上加入高斯(gaussian) 噪声 c)利用预定义函数fspecial 命令产生平均(average)滤波器 d)分别采用3x3和5x5的模板,分别用平均滤波器以及中值滤波器,对加入噪声的图像进行处理并观察不同噪声水平下,上述滤波器处理的结果; e)选择不同大小的模板,对加入某一固定
16、噪声水平噪声的图像进行处理,观察上述滤波器处理的结果。f)利用imnoise 命令在图像Sample2-1.jpg 上加入椒盐噪声(salt & pepper)g)重复c) e)的步骤h)输出全部结果并进行讨论。2、 实验结果与源代码源代码>>I=imread('cameraman.tif');J = imnoise(I,'gauss',0.02);J = imnoise(I,'salt & pepper',0.02);ave1=fspecial('average',3);ave2=fspecial(&
17、#39;average',5);K = filter2(ave1,J)/255;L = filter2(ave2,J)/255;M = medfilt2(J,3 3);N = medfilt2(J,4 4);imshow(I);figure,imshow(J);figure,imshow(K);figure,imshow(L);figure,imshow(M);figure,imshow(N);三、思考题/问答题 (1) 简述高斯噪声和椒盐噪声的特点。高斯噪声是指噪声的概率密度函数服从高斯分布(即正态分布)的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布
18、的,则称它为高斯白噪声。高斯白噪声的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。 高斯白噪声包括热噪声和散粒噪声。而椒盐噪声是指椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。椒盐噪声往往由图像切割引起。(2) 结合实验内容,定性评价平均滤波器/中值滤波器对高斯噪声和椒盐噪声的去噪效果? 通过实验可以看出,中值滤波对椒盐噪声的消噪处理效果比较好,但是对高斯噪声的消噪处理效果不是很理想(3) 结合实验内容,定性评价滤波窗口对去噪效果的影响? 对比实验结果可以发现:发现对于椒盐噪声,中值滤波效果更好。对于高斯噪声,选用5*5窗口滤波效果好于3*3窗口滤波,但图
19、像模糊程度加重了。 实验四 图像分割一、实验内容与步骤(1)使用Roberts 算子的图像分割实验 调入并显示图像room.tif中图像;使用Roberts 算子对图像进行边缘检测处理; Roberts 算子为一对模板: 相应的矩阵为:rh = 0 1;-1 0; rv = 1 0;0 -1;这里的rh 为水平Roberts 算子,rv为垂直Roberts 算子。分别显示处理后的水平边界和垂直边界检测结果;用“欧几里德距离”和“街区距离”方式计算梯度的模,并显示检测结果;对于检测结果进行二值化处理,并显示处理结果;(2)使用Prewitt 算子的图像分割
20、实验 使用Prewitt 算子进行内容(1)中的全部步骤。(3)使用Sobel 算子的图像分割实验 使用Sobel 算子进行内容(1)中的全部步骤。(4)使用LoG (拉普拉斯-高斯)算子的图像分割实验 使用LoG (拉普拉斯-高斯)算子进行内容(1)中的全部步骤。提示1:处理后可以直接显示处理结果,无须另外计算梯度的模。提示2:注意调节噪声的强度以及LoG (拉普拉斯-高斯)算子的参数,观察处理结果。二、实验结果与源程序实验结果如下图:源程序>>f=imread('cameraman.tif');gv,t1=edge(f,'sobel&
21、#39;,'vertical');imshow(gv)gb,t2=edge(f,'sobel','horizontal');figure,imshow(gb)w45=-2 -1 0;-1 0 1;0 1 2;g45=imfilter(double(f),w45,'replicate');T=0.3*max(abs(g45(:);g45=g45>=T;figure,imshow(g45);三、思考题/问答题1、评价一下Roberts 算子、Prewitt 算子、Sobel 算子对于噪声条件下边界检测的性能。Roberts 算子
22、边缘定位精度较高,但易丢失一部分边缘,同时由于没经过图像平滑计算,因此不能抑制噪声。该算子对具有陡峭的低噪声图像响应最好。Sobel算子很容易在空间上实现,对噪声具有平滑作用,受噪声影响较小,可提供较为精确的边缘方向信息,但同时也会检测出许多伪边缘,检测到的边缘宽度较粗,边缘位置定位精度不高。Prewitt 算子与Sobel 算子使用方法一样,都是对图像进行差分和滤波运算,差别只在于使用的模板不一样,Prewitt 算子比Sobel 算子运算略微简单。2、为什么LoG梯度检测算子的处理结果不需要象Prewitt 等算子那样进行幅度组合? LOG 算子是根据图像的信噪比来求出检测边缘的最优滤波器
23、。该方法首先采用高斯函数对图像进行低通平滑滤波,然后采用Laplacia 算子进行高通滤波,根据二阶导数的过零点来检测图像的边缘。因而不需要象Prewitt 等算子那样进行幅度组合。3、实验中所使用的四种算子所得到的边界有什么异同?Roberts 算子检测出的图像轮廓边缘很细,连续性较差,边缘信息有一定丢失,出现的噪点比较多。Sobel 和Prewitt 两个算子检测出的边缘效果几乎一致,比Roberts 算子的检测结果要好,边缘较为连续,对噪声不敏感,但是线条稍粗,出现了一些伪边缘。二阶LOG 算子检测出来的图像边缘更加连续,边缘也比较细小。但是由于二阶算子的特性,对噪声比较敏感。当的值越小
24、,平滑的程度就越小,于是会出现零星的假边缘;而的值越大,平滑的程度也越大,但是部分真实的边缘会丢失,出现边缘间断现象实验五 形态学运算一、实验内容与步骤 1. 调入并显示图像Plane2.jpg;2. 选取合适的阈值,得到二值化图像Plane2-2.jpg;3. 设置结构元素;4. 对得到的二值图像Plane2-2.jpg进行腐蚀运算;5. 对得到的二值图像Plane2-2.jpg进行膨胀运算;6. 对得到的二值图像Plane2-2.jpg进行开运算;7. 对得到的二值图像Plane2-2.jpg进行闭运算;8. 将两种处理方法的结果作比较;2、 实验结果与源程序实验结果如下图:源程序I=im
25、read('Sunset.jpg');level = graythresh(I); %得到合适的阈值bw = im2bw(I,level); %二值化SE = strel('square',3); %设置膨胀结构元素BW1 = imdilate(bw,SE); %膨胀SE1 = strel('arbitrary',eye(5); %设置腐蚀结构元素BW2 = imerode(bw,SE1); %腐蚀BW3 = bwmorph(bw, 'open'); %开运算BW4 = bwmorph(bw, 'close');
26、%闭运算imshow(I);figure,imshow(bw);figure,imshow(BW1);figure,imshow(BW2);figure,imshow(BW3);figure,imshow(BW4);三、思考题/问答题 1. 结合实验内容,评价腐蚀运算与膨胀运算的效果。 腐蚀是一种消除边界点,它使边界向内部收缩,消除小且无意义的物体。膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。可以用来填补物体中的空洞。2. 结合实验内容,评价开运算与闭运算的效果。先腐蚀后膨胀的过程称为开运算。实验中,开运算能够去除孤立的小点,毛刺和小桥(即连通两块区域的小点),而总的位置和形状不变。先膨胀后腐蚀称为闭运算。实验中,闭运算能够填平小湖(即小孔),弥合小裂缝,而总的位置和形状不变。3. 腐蚀、膨胀、开、闭运算的适用条件是什么?由于噪声的影响,图象在阈值化后所得到边界往往是很不平滑的,物体区域具有一些噪声孔,背景区域上散布着一些小的噪声物体。连续的开和闭运算可以有效地改善这种情况。有时需要经过多次腐蚀之后再加上相同次数的膨胀,才可以产生比较好的效果。镑荔女吠涸寝疹举雇辑枯恳犁析骸譬毋苗协温国挛熙埔卓矾尉裁朋码炕负淄佣劫
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论