《数字图像处理》实验指导书2014_第1页
《数字图像处理》实验指导书2014_第2页
《数字图像处理》实验指导书2014_第3页
《数字图像处理》实验指导书2014_第4页
《数字图像处理》实验指导书2014_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《数字图像处理》实验指导书华北水利水电大学信息工程学院2014年5月目录实验守则……………………1实验一图像增强与平滑…………………2实验二图像的几何变换………………7实验三图像形态学处理…………………9实验四图像分割与边缘检测……………5实验五数字图像处理应用………………12附录1MATLAB简介……………………16PAGEPAGE2PAGE0实验守则为了加强实验室管理,提高实验教学质量,培养学生理论联系实际的学风,提高实际操作技能,确保人身和设备的安全,特制定如下守则:1.实验前要认真预习,了解实验目的、实验原理、实验线路、实验步骤及欲测的物理量。熟悉和实验有关的仪器设备的用途、使用方法及注意事项。能回答指导教师的提问。2.实验时应听从教师指导,严格按实验步骤进行,如实记录实验数据,积极思考和分析实验中发生的现象。实验中如遇事故应立即关断电源、保持现场,报告指导教师及时处理。如有损坏仪器或器件,要填写事故原因及报损单。3.实验完毕应立即关断电源,把实验记录交指导教师检查合格后方可拆除线路。如发现实验记录有不当和错误之外,应立即重作。要把所有仪器、仪表、工具、导线整理好。经指导教师清点后方可离开实验室。4.要爱护公物。实验室所有的仪表、工具、器件等一律不得擅自带出。实验中如需更换仪器、仪表、工具、器件等,必须经指导教师同意。不得擅自更换或乱拿他组物品。未经允许,不得擅自拆卸实验用的仪器、设备。5.实验时要严肃认真,讲究文明、礼貌,要保持安静和室内整洁,不随地吐痰和乱抛杂物。实验完毕要打扫实验室卫生。6.书写实验报告时,语言要力求简练,书写应端正,作图应正规。实验报告一般应包括以下内容:(1)实验目的;所用仪器、仪表、器件的名称及规格型号;实验电路原理图。(2)实验项目(指导书中的详细内容不必抄录);测试记录表;波形图及现象记录。(3)实验数据整理,计算后的结果、及根据实验数据绘制的曲线。(4)实验分析,应包括与理论计算值的比较、现象分析。7.关于实验考核:学生在实验课中的实际技能水平与实验报告的质量是评定本课程实验成绩的标准。因各种原因缺做实验和缺交实验报告者,实验成绩要受影响。实验一图像增强与平滑一.实验目的及要求1.了解MATLAB的操作环境和基本功能。2.掌握MATLAB中图像增强与平滑的函数的使用方法。3.加深理解图像增强与平滑的算法原理。二、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。(可将每段程序保存为一个.m文件)1.直方图均衡化clearall;closeall%CleartheMATLABworkspaceofanyvariables%andcloseopenfigurewindows.I=imread('pout.tif');%Readsthesampleimages‘pout.tif’,andstoresitinimshow(I)%anarraynamedI.displaytheimagefigure,imhist(I)%Createahistogramoftheimageanddisplayitin%anewfigurewindow.[I2,T]=histeq(I);%Histogramequalization.figure,imshow(I2)%Displaythenewequalizedimage,I2,inanewfigurewindow.figure,imhist(I2)%CreateahistogramoftheequalizedimageI2.figure,plot((0:255)/255,T);%plotthetransformationcurve.imwrite(I2,'pout2.png');%WritethenewlyadjustedimageI2toadiskfilenamed%‘pout2.png’.imfinfo('pout2.png')%Checkthecontentsofthenewlywrittenfile注意:imadjust()注意:imadjust()功能:调整图像灰度值或颜色映像表,也可实现伽马校正。语法:J=imadjust(I,[low_inhigh_in],[low_outhigh_out],gamma)newmap=imadjust(map,[low_inhigh_in],[low_outhigh_out],gamma)RGB2=imadjust(RGB1,...)clearall;closeallI=imread('cameraman.tif');J=imadjust(I,[00.2],[0.51]);imshow(I)figure,imshow(J)[X,map]=imread('forest.tif');figure,imshow(X,map)I2=ind2gray(X,map);J2=imadjust(I2,[],[],0.5);figure,imshow(I2)figure,imshow(J2)J3=imadjust(I2,[],[],1.5);figure,imshow(J3)helpimadjust%Displaytheimadjust()functioninformation.3.空域平滑滤波(模糊、去噪)clearall;closeallI=imread('eight.tif');h1=ones(3,3)/9;h2=ones(5,5)/25;I1=imfilter(I,h1);I2=imfilter(I,h2);figure(1),imshow(I),title('OriginalImage');figure(2),imshow(I1),title('FilteredImageWith3*3')figure(3),imshow(I2),title('FilteredImageWith5*5')%加入Gaussian噪声J1=imnoise(I,'gaussian',0,0.005);%加入椒盐噪声J2=imnoise(I,'salt&pepper',0.02);%对J1、J2进行平均值平滑滤波K1=imfilter(J1,fspecial('average',3));K2=imfilter(J2,figure(4);subplot(2,2,1),imshow(J1),title('gaussian');subplot(2,2,2),imshow(J2),title('salt&pepper');subplot(2,2,3),imshow(K1),title('average');subplot(2,2,4),imshow(K2);%对J1、J2进行中值滤波K3=medfilt2(J1,[33]);K4=medfilt2(J2,[33]);figure(5);subplot(2,2,1),imshow(J1),title('gaussian');subplot(2,2,2),imshow(J2),title('salt&pepper');subplot(2,2,3),imshow(K3),title('Medianfiltering');subplot(2,2,4),imshow(K4)4.空域锐化滤波clearall;closeallI=imread('moon.tif');w=fspecial('laplacian',0)w8=[1,1,1;1,-8,1;1,1,1]I1=imfilter(I,w,'replicate');figure(1);imshow(I),title('OriginalImage');figure(2),imshow(I1),title('LaplacianImage');f=im2double(I);f1=imfilter(f,w,'replicate');figure(3),imshow(f1,[]),title('LaplacianImage');f2=imfilter(f,w8,'replicate');f4=f-f1;f8=f-f2;figure(4),imshow(f4);figure(5),imshow(f8);(二)采用MATLAB底层函数编程实现1.灰度变换之动态范围扩展假定原图像f(x,y)的灰度范围为[a,b],希望变换后图像g(x,y)的灰度范围扩展至[c,d],则线性变换可表示为:用MATLAB底层函数编程实现上述变换函数。观察图像‘pout.tif’的灰度直方图,选择合适的参数[a,b]、[c,d]对图像‘pout.tif’进行灰度变换,以获得满意的视觉效果。2.非锐化掩蔽和高升滤波从原图像中减去其非锐化(平滑过的)图像的过程称为非锐化掩蔽,其基本步骤为:=1\*GB2⑴对原图像进行平滑滤波得到模糊图像;=2\*GB2⑵从原图像中减去模糊图像,产生的差值图像称为模板;=3\*GB2⑶将模板加到原图像上,得到锐化后的图像。即,用MATLAB函数编程实现上述功能。三、实验设备1.计算机;2.MATLAB6.5及以上;四、预习与思考1.预习实验内容,阅读教材熟悉实验原理;2.查阅资料,熟悉MATLAB的操作环境和基本功能。熟悉实验中涉及的有关函数。3.利用课余时间,用MATLAB底层函数编程实现实验内容(二)中的灰度线性变换。4.你能否给出实现样例程序功能的其它方法?五、实验报告要求简述试验的目的和试验原理;叙述各段程序功能,改变有关函数的参数,分析比较实验结果;打印出所编写的实验程序。写出本实验的心得体会及意见。实验二图像的几何变换一.实验目的及要求掌握图像几何变换的基本原理,熟练掌握数字图像的缩放、旋转、平移、镜像和转置的基本原理及其MATLAB编程实现方法。二、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。1.图像缩放clearall,closeallI=imread('cameraman.tif');Scale=1.35;%将图像放大1.35倍J1=imresize(I,Scale,'nearest');%usingthenearestneighborinterpolationJ2=imresize(I,Scale,'bilinear');%usingthebilinearinterpolationimshow(I),title('OriginalImage');figure,imshow(J1),title('ResizedImage--usingthenearestneighborinterpolation');figure,imshow(J2),title('ResizedImage--usingthebilinearinterpolation');%查看imresize使用帮助helpimresize说明:注意观察不同插值方法的图像表现;改变图像缩放因子Scale,重做上述实验。2.图像旋转clearall,closeallI=imread('cameraman.tif');Theta=45;%将图像逆时针旋转45。J1=imrotate(I,Theta,'nearest');%usingthenearestneighborinterpolation%andenlargetheoutputimageTheta=-45;%将图像顺时针旋转45。J2=imrotate(I,Theta,'bilinear','crop');%usingthebilinearinterpolation%andcropstheoutputimageimshow(I),title('OriginalImage');figure,imshow(J1),title('RotatedImage--usingthenearestneighborinterpolation');figure,imshow(J2),title('RotatedImage--usingthebilinearinterpolation');%查看imrotate使用帮助helpimrotate说明:注意观察不同插值方法和输出图像后处理方法的图像表现;改变旋转角度大小和方向,重做上述实验。3.图像水平镜象clearall,closeallI=imread('cameraman.tif');I1=flipdim(I,2);I2=flipdim(I,1);figure(1),subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(I1);figure(2),subplot(2,1,1),imshow(I);subplot(2,1,2),imshow(I2);(二)用MATLAB编程实现以下图像几何变换1.图像平移2.图像转置图像的转置是将给定图像像素的x坐标和y坐标互换的几何变换,设点P0(x0,y0)转置后的对应点为P(x,y),转置变换可表述为:或,对应的逆变换为:或转置后图像的宽、高发生改变,即输出图像的高度为原始图像的宽度,输出图像的宽度为原始图像的高度。三、实验设备1.计算机;2.MATLAB6.5;四、预习与思考1.预习实验内容,阅读教材熟悉实验原理;2.查阅资料,熟悉实验中涉及的有关MATLAB函数;3.利用课余时间,采用MATLAB底层函数编程实现实验内容(二)中的图像平移、图像转置等几何变换。五、实验报告要求1.简述试验的目的和试验原理;2.叙述各段程序功能,改变有关函数的参数,分析比较实验结果;3.打印出所编写的实验程序。4.写出本实验的心得体会及意见。实验三图像形态学处理一.实验目的及要求1.利用MATLAB研究二值形态学图像处理常用算法;2.掌握MATLAB形态学图像处理基本操作函数的使用方法;3.了了解形态学的基本应用。二、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。1.膨胀与腐蚀(DilationandErosion)(1)对简单二值图像进行膨胀与腐蚀clearall,closeallBW=zeros(9,10);BW(4:6,4:7)=1;BWSE=strel('square',3)BW1=imdilate(BW,SE)BW2=imerode(BW,SE)figure(1),subplot(1,2,1),imshow(BW,'notruesize'),title('OriginalImage');subplot(1,2,2),imshow(BW1,'notruesize'),title('DilatedImage');figure(2),subplot(1,2,1),imshow(BW,'notruesize'),title('OriginalImage');subplot(1,2,2),imshow(BW2,'notruesize'),title('ErodedImage');(2)对文本图像进行膨胀与腐蚀clearall,closeallI=imread('text.tif');SE=[0,1,0;1,1,1;0,1,0]BW1=imdilate(I,SE);BW2=imerode(I,SE);figure(1),subplot(1,2,1),imshow(I,'notruesize'),title('OriginalImage');subplot(1,2,2),imshow(BW1,'notruesize'),title('DilatedImage');figure(2),subplot(1,2,1),imshow(I,'notruesize'),title('OriginalImage');subplot(1,2,2),imshow(BW2,'notruesize'),title('ErodedImage');2.开、闭运算(OpenandClose)clearall,closeallI=imread('nodules1.tif');bw=~im2bw(I,graythresh(I));se=strel('disk',5);bw2=imopen(bw,se);subplot(1,2,1),imshow(bw),title('ThresholdedImage')subplot(1,2,2),imshow(bw2),title('Afteropening')bw3=imclose(bw,se);figure;subplot(1,2,1),imshow(bw,'truesize'),title('ThresholdedImage')subplot(1,2,2),imshow(bw3,'truesize'),title('AfterClosing')说明:改变结构元素形状、大小,重做上述实验,比较实验结果,分析结构元素对运算的影响;对图像'circlesm.tif'进行开、闭运算,仔细观察两种运算的结果,总结二者的作用。3.击中/击不中变换(hit-and-missoperation)clearall,closeallbw=[000000001100011110011110001100001000]interval=[011-1010]bw2=bwhitmiss(bw,interval)subplot(1,3,1),imshow(bw,'notruesize'),title('OriginalImage');subplot(1,3,2),imshow(interval,'truesize'),title('IntervalImage');subplot(1,3,3),imshow(bw2,'notruesize'),title('afterhit/misstransformation');4.细化与骨架抽取clearall,closeallBW=~imread('logo.tif');BW1=bwmorph(BW,'thin',Inf);BW2=bwmorph(BW,'skel',Inf);subplot(1,3,1),imshow(BW),title('OriginalImage');subplot(1,3,2),imshow(BW1),title('ThinnedImage');subplot(1,3,3),imshow(BW2),title('Imageskeleton');%查看bwmorph函数使用说明helpbwmorph(二)用MATLAB二值数学形态学函数编程提取’rice.tif’图像中的物体边界。三、实验设备1.计算机;2.MATLAB6.5;四、预习与思考1.预习实验内容,阅读教材熟悉实验原理;2.查阅资料,熟悉实验中涉及的有关函数。3.利用课余时间,采用MATLAB函数编程实现实验内容(二)。五、实验报告要求1.简述试验的目的和试验原理;2.叙述各段程序功能,改变有关函数的参数,分析比较实验结果;3.打印出所编写的实验程序。4.写出本实验的心得体会及意见。实验四图像分割与边缘检测一.实验目的及要求1.利用MATLAB研究图像分割与边缘检测的常用算法原理;2.掌握MATLAB图像域值分割与边缘检测函数的使用方法;3.了解边缘检测的算法和用途,比较Sobel、Prewitt、Canny等算子边缘检测的差异。二、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。1.图像阈值分割clearall,closeall;I=imread('rice.tif');figure(1),imshow(I)figure(2);imhist(I)T=120/255;Ibw1=im2bw(I,T);%选择阈值T=120/255对图像二值化;figure(3);subplot(1,2,1),imshow(Ibw1);T=graythresh(I);%采用Otsu方法计算最优阈值T对图像二值化;L=uint8(T*255)Ibw2=im2bw(I,T);subplot(1,2,2),imshow(Ibw2);helpim2bw;helpgraythresh;(令T取不同值,重做上述试验,观察试验结果)2.边缘检测clearall,closeall;I=imread('rice.tif');BW1=edge(I,'sobel');BW2=edge(I,'canny');BW3=edge(I,'prewitt');BW4=edge(I,'roberts');BW5=edge(I,'log');figure(1),imshow(I),title('OriginalImage');figure(2),imshow(BW1),title('sobel');figure(3),imshow(BW2),title('canny');figure(4),imshow(BW3),title('prewitt');figure(5),imshow(BW4),title('roberts');figure(6),imshow(BW5),title('log');%在完成上述试验后,查看函数edge()使用说明。helpedge%仔细阅读函数edge()使用说明后,研究IPT提供的边缘检测演示程序。edgedemo(二)利用MATLAB熟悉并验证其它图像分割方法(三)采用MATLAB编程实现自动全局阈值算法,对图像'rice.tif'进行二值化分割算法步骤:1)选取一个的初始估计值T;2)用T分割图像。这样便会生成两组像素集合:G1由所有灰度值大于T的像素组成,而G2由所有灰度值小于或等于T的像素组成。3)对G1和G2中所有像素计算平均灰度值m1和m2。4)计算新的阈值:T=(m1+m2)/25)重复步骤(2)到(4),直到逐次迭代所得到的T值之差小于一个事先定义的参数To,即,如果|Tn–Tn-1|<To,则停止。三、实验设备1.计算机;2.MATLAB6.5;四、预习与思考1.预习实验内容,阅读教材熟悉实验原理;2.查阅资料,熟悉实验中涉及的有关MATLAB函数;2.利用课余时间,采用MATLAB底层函数编程实现实验内容(二)中的自动全局阈值算法。五、实验报告要求1.简述试验的目的和试验原理;2.叙述各段程序功能,改变有关函数的参数,分析比较实验结果;3.打印出所编写的实验程序。4.写出本实验的心得体会及意见。实验五数字图像处理应用一.实验目的及要求1.利用MATLAB提供的图像处理函数实现图像中物体属性的测量;2.训练综合运用MATLAB图像处理函数的能力;3.了解数字图像处理基本应用。二、实验内容以大米粒特性测量为例,综合应用课程中图像分割、形态学滤波、图像增强、图像特征提取等图像处理方法,实现大米粒特性自动测量。实验过程简述:读取和显示图像估计图像背景获取背景均匀的图像图像增强图像二值化分割区域标记及为彩色处理测量图像中的区域特性(面积、质心等)统计大米粒的特性分布规律。(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。%ReadandDisplayanImageclear,closeallI=imread('rice.tif');imshow(I)%UseMorphologicalOpeningtoEstimatetheBackgroundbackground=imopen(I,strel('disk',15));imshow(background);%DisplaytheBackgroundApproximationasaSurfacefigure,surf(double(background(1:8:end,1:8:end))),zlim([0255]);set(gca,'ydir','reverse');%SubtracttheBackgroundImagefromtheOriginalImageI2=imsubtract(I,background);figure,imshow(I2)%AdjusttheImageContrastI3=imadjust(I2,stretchlim(I2),[01]);figure,imshow(I3);%ApplyThresholdingtotheImagelevel=graythresh(I3);bw=im2bw(I3,level);figure,imshow(bw)%DeterminetheNumberofObjectsintheImage[labeled,numObjects]=bwlabel(bw,4);%Labelcomponents.numObjects%ExaminetheLabelMatrixRGB_label=label2rgb(label

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论