欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    数字图象处理学生讲义.ppt

    • 资源ID:5342216       资源大小:4.02MB        全文页数:42页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数字图象处理学生讲义.ppt

    用MATLAB进行的数字图像处理,目录,1、对于数字图象处理的基本调用(二值化、图像的输入和图像的显示)2、边缘检测(edge)3、选择图像中的多边形区域(roipoly)以及按灰度值选择区域(roicolor)4、roifilt2区域滤波、filter2均值滤波、roifill区域填充5、FFT变换补零操作和改变图像的显示象限6、图像腐蚀和膨胀,1、对于数字图象处理的基本调用,、图像的输入(imread)调用方法:找到你要调用的图像的路径和格式,如C:Users11Desktopwuguo.jpg,调用格式为I=imread(C:Users11Desktopwuguo.jpg),这样图像就会以rgb矩阵的形式寄存在matlab中,、图像的输出(imshow)对于你已经拥有的二维矩阵,对其调用imshow程序进行图像显示,格式为imshow(I)需要注意的是,imshow一般显示的是unit8格式的矩阵,如果矩阵的规格是double模式,则需用格式imshow(I,)进行显示,否则容易显示出一片空白,、图像的二值化(rbg2gray)所谓的二值化就是将彩色的图像转变成黑白双色的图像,在图像处理中是将每个点的r、b、g数据按照一定的加权运算得到,调用格式为I1=rgb2gray,关于对imread、imshow、rgb2gray调用的举例,参考程序为:clear allclose allI1=imread(C:Users11Desktopwuguo.jpg);I=rgb2gray(I1);subplot(1,2,1);imshow(I1);subplot(1,2,2);imshow(I),显示结果,图1 左图为输出一般的图像,右图为将图像进行灰度化后的显示结果,2、边缘检测(edge),所谓的边缘检测是将灰度化后的图像进行亮度检测,并勾勒出亮度达到阈值条件的点调用格式:BW=edge(I)%比较常用的调用方式采用灰度或一个二值化图像I作为它的输入,并返回一个与I相同大小的二值化图像BW,在函数检测到边缘的地方为1,其他地方为0。BW=edge(I,sobel)自动选择阈值用Sobel算子进行边缘检测。,BW=edge(I,sobel,thresh)根据所指定的敏感度阈值thresh,用Sobel算子进行边缘检测,它忽略了所有小于阈值的边缘。当thresh为空时,自动选择阈值。BW=edge(I,sobel,thresh,direction)根据所指定的敏感度阈值thresh,在所指定的方向direction上,用Sobel 算子进行边缘检测。Direction可取的字符串值为horizontal(水平方向)、vertical(垂直方向)或both(两个方向)。BW,thresh=edge(I,sobel,.)返回阈值,程序举例:clear allclose allI1=imread(C:Users11Desktopwuguo.jpg);I=rgb2gray(I1);subplot(1,2,1);imshow(I);subplot(1,2,2);J=edge(I);imshow(J);,显示结果,图2、左图为灰度图,右图为边缘检测后显示的图形,3、选择图像中的多边形区域(roipoly)以及按灰度值选择区域(roicolor),、选择图像中的多边形区域(roipoly)roipoly功能:用于选择图像中的多边形区域。用法:BW=roipoly(I,c,r)BW=roipoly(I)BW=roipoly(x,y,I,xi,yi)BW,xi,yi=roipoly(.)x,y,BW,xi,yi=roipoly(.)BW=roipoly(I,c,r)表示用向量c、r指定多边形各点的X、Y坐标。BW选中的区域为1,其他部分的值为0.BW=roipoly(I)表示建立交互式的处理界面。BW=roipoly(x,y,I,xi,yi)表示向量x和y建立非默认的坐标系,然后在指定的坐标系下选择由向量xi,yi指定的多边形区域。,程序举例:clcclearfilename,pathname,q=uigetfile(*.*;*.bmp;*.jpg;*.png);if q0lujing=strcat(pathname,filename);I=imread(lujing);figureimshow(I);endp=size(I,3);if p=3r=I(:,:,1);g=I(:,:,2);b=I(:,:,3);I1=rgb2gray(I);,else I1=I;endhold onx,y,c=ginput(1);m(1)=x;n(1)=y;plot(x,y,r);k=2;while(c=1)x1,y1,c1=ginput(1);if c1=1 m(k)=x1;n(k)=y1;plot(x,y,r);line(m(k-1)m(k),n(k-1)n(k);k=k+1;c=c1;else break endendline(m(k-1)m(1),n(k-1)n(1);,BW=roipoly(I1,m,n);if p=3 r1=double(r).*double(BW);g1=double(g).*double(BW);b1=double(b).*double(BW);i1=cat(3,r1,g1,b1);figure imshow(mat2gray(i1);else i2=double(I1).*double(BW);figure imshow(mat2gray(i2);end,图3、左图为显示输入的图像,右图为经过鼠标剪切过之后的显示图像,显示结果:,、roicolor,功能:可以根据颜色选定区域。用法:BW=roicolor(A,low,high)BW=roicolor(A,v)BW=roicolor(A,low,high)色图范围为low high,返回这些像素选择区域。BW为大小和A相同的数组,若A中元素值在low high范围内,则返回值1,否则返回0.BW=roicolor(A,v)返回图像A中像素与向量v相匹配的区域,BW为二值图像,1值为A中与v相匹配的地方。,程序举例:clear allclose allI1=imread(C:Users11Desktopwuguo.jpg);I=rgb2gray(I1);J=roicolor(I,5,30);subplot(1,2,1);imshow(I);subplot(1,2,2);imshow(J),结果显示:,图4、左图为输入图像,右图为对图像进行灰度区域选择产生的图像,、roifilt2,功能:用于对一个区域进行滤波。用法:J=roifilt2(h,I,BW)J=roifilt2(I,BW,fun)J=roifilt2(I,BW,fun,P1,P2,.)J=roifilt2(h,I,BW)表示使用滤波器h对图像I中用二值掩模BW选中的区域滤波。BW为和I大小相同的二值图像。J=roifilt2(I,BW,fun,P1,P2,.)表示用fun函数处理区域滤波图像I。参数P1、P2等为fun函数的输入参数。例子:I=imread(eight.tif);c=222 272 300 270 221 194;r=21 21 75 121 121 75;BW=roipoly(I,c,r);h=fspecial(unsharp);,参考程序I1=imread(C:Users11Desktopwuguo.jpg);I=rgb2gray(I1);imshow(I);hold on;x,y,c=ginput(1);m(1)=x;n(1)=y;plot(x,y,r);k=2;,while(c=1)x1,y1,c1=ginput(1);if c1=1 m(k)=x1;n(k)=y1;plot(x,y,r);line(m(k-1)m(k),n(k-1)n(k);k=k+1;c=c1;else break endendline(m(k-1)m(1),n(k-1)n(1);,BW=roipoly(I,m,n);h=fspecial(unsharp);%指定滤波器J=roifilt2(h,I,BW);figureimshow(J)%,figure,imshow(J),结果展示,、roifill(ROIregion-of-interest),功能:对指定区域进行填充。用法:J=roifill(I,c,r)J=roifill(I)J,BW=roifill(.)J=roifill(x,y,I,xi,yi)x,y,J,BW,xi,yi=roifill(.)J=roifill(I,c,r)填充由向量c,r指定的多边形,c和r分别为多边形的各顶点X、Y坐标。可用于擦除图像中的小物体。J=roifill(I)用于交互式处理界面。J=roifill(I,BW)用BW(和I大小一致)掩模填充此区域。如果为多个多边形,则分别执行插值填充。,参考程序I1=imread(C:Users11Desktopwuguo.jpg);I=rgb2gray(I1);imshow(I);hold on;x,y,c=ginput(1);m(1)=x;n(1)=y;plot(x,y,r);k=2;,while(c=1)x1,y1,c1=ginput(1);if c1=1 m(k)=x1;n(k)=y1;plot(x,y,r);line(m(k-1)m(k),n(k-1)n(k);k=k+1;c=c1;else break endendline(m(k-1)m(1),n(k-1)n(1);J=roifill(I,m,n);figureimshow(J),结果展示:,图6、左图为没填充的图片,有图为对选择区域进行填充的图片,filter2:均值滤波,filter2(B,X),B为滤波器.X为要滤波的数据,这里将B放在X上,一个一个移动进行模板滤波.,clear allclose allI1=imread(C:Users11Desktopwuguo.jpg);I=rgb2gray(I1);subplot(1,2,1);imshow(I);J=filter2(fspecial(unsharp),I);subplot(1,2,2);imshow(J,),显示结果:,五、FFT变换补零操作和改变图像的显示象限,FFT的补零操作和一维的相似,调用格式为:F=fft2(f,a,b);其中f为你要变换的图像矩阵,a、b分别为变换后的行数和列数,例:有一矩形函数f(m,n),矩形区域为1,其余为0,对该矩形作傅立叶变换。,clear;N=100;f=zeros(50,50);f(15:35,23:28)=1;subplot(2,1,1)imshow(f)subplot(2,1,2)F=fft2(f);imshow(log(abs(F),对于fft2的举例,从上幅图像中可以看到,直流成分主要集中在右上角,分辨率比较低。通过fftshift函数提供补零和直流成分显示区域调整后得到调整以后的结果如上图所示。,N=100;f=zeros(50,50);f(15:35,23:28)=1;subplot(2,1,1)imshow(f)F=fft2(f,256,256);F2=fftshift(F);subplot(2,1,2)imshow(log(abs(F2);,fftshift函数实现补零操作和改变图象显示象限,傅里叶逆变换ifft2,傅里叶逆变换和一维的傅里叶相似,需要注意的是,傅里叶逆变换后会因为浮点计算误差而产生虚数,因此在图像展示时可以展示实部,例如:imshow(abs(F),fftshift改变图像的显示象限,clear allclose allN=100;f=zeros(50,50);f(15:35,23:28)=1;subplot(2,1,1)imshow(f)F=fft2(f,256,256);F2=fftshift(F);subplot(2,1,2)imshow(log(abs(F2);,六、膨胀与腐蚀,腐蚀:删除对象边界某些像素。膨胀:给图像中的对象边界添加像素。在操作中,输出图像中所有给定像素的状态都是通过对输入图像的相应像素及邻域使用一定的规则进行确定。在膨胀操作时,输出像素值是输入图像相应像素邻域内所有像素的最大值。在二进制图像中,如果任何像素值为1,那么对应的输出像素值为1;而在腐蚀操作中,输出像素值是输入图像相应像素邻域内所有像素的最小值。在二进制图像中,如果任何一个像素值为0,那么对应的输出像素值为0,图像膨胀的Matlab实现:可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象。结构元素对象可以是strel函数返回的对象,也可以是一个自己定义的表示结构元素邻域的二进制矩阵。.图像腐蚀的Matlab实现:可以使用imerode函数进行图像腐蚀。imerode函数需要两个基本输入参数:待处理的输入图像以及结构元素对象。此外,imerode函数还可以接受3个可选参数:PADOPT(padopt)影响输出图片的大小、PACKOPT(packopt).说明输入图像是否为打包的二值图像(二进制图像),程序举例:,BW=zeros(9,10);BW(4:6,4:7)=1;SE=strel(square,3);BW2=imdilate(BW,SE);BW3=imerode(BW,SE);subplot(3,1,1)imshow(BW);subplot(3,1,2);imshow(BW2)subplot(3,1,3);imshow(BW3);,图7 分别为图像原型、膨胀、腐蚀,

    注意事项

    本文(数字图象处理学生讲义.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开