资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,数字图象处理学生讲义,46、寓形宇内复几时,曷不委心任去留。,47、采菊东篱下,悠然见南山。,48、啸傲东轩下,聊复得此生。,49、勤学如春起之苗,不见其增,日有所长。,50、环堵萧然,不蔽风日;短褐穿结,箪瓢屡空,晏如也。,数字图象处理学生讲义数字图象处理学生讲义46、寓形宇内复几时,曷不委心任去留。,47、采菊东篱下,悠然见南山。,48、啸傲东轩下,聊复得此生。,49、勤学如春起之苗,不见其增,日有所长。,50、环堵萧然,不蔽风日;短褐穿结,箪瓢屡空,晏如也。用MATLAB进行的数字图像处理目录1、对于数字图象处理的基本调用(二值化、图像的输入和图像的显示),2、边缘检测(edge),3、选择图像中的多边形区域(roipoly)以及按灰度值选择区域(roicolor),4、roifilt2区域滤波、filter2均值滤波、roifill区域填充,5、FFT变换补零操作和改变图像的显示象限,6、图像腐蚀和膨胀,数字图象处理学生讲义46、寓形宇内复几时,曷不委心任去留。数,1,数字图象处理学生讲义课件,2,数字图象处理学生讲义课件,3,数字图象处理学生讲义课件,4,数字图象处理学生讲义课件,5,、图像的二值化(rbg2gray),所谓的二值化就是将彩色的图像转变成黑白双色的图像,在图像处理中是将每个点的r、b、g数据按照一定的加权运算得到,调用格式为,I1=rgb2gray,、图像的二值化(rbg2gray),6,关于对imread、imshow、rgb2gray调用的举例,参考程序为:,clear all,close all,I1=imread(C:Users11Desktopwuguo.jpg);,I=rgb2gray(I1);,subplot(1,2,1);,imshow(I1);,subplot(1,2,2);,imshow(I),关于对imread、imshow、rgb2gray调用的举例,7,显示结果,图1 左图为输出一般的图像,右图为将图像进行灰度化后的显示结果,显示结果图1 左图为输出一般的图像,右图为将图像进行灰度化,8,2、边缘检测(edge),所谓的边缘检测是将灰度化后的图像进行亮度检测,并勾勒出亮度达到阈值条件的点,调用格式:,BW=edge(I)%比较常用的调用方式,采用灰度或一个二值化图像I作为它的输入,并返回一个与I相同大小的二值化图像BW,在函数检测到边缘的地方为1,其他地方为0。,BW=edge(I,sobel)自动选择阈值用Sobel算子进行边缘检测。,2、边缘检测(edge)所谓的边缘检测是将灰度化后的图像进行,9,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,.)返回阈值,BW=edge(I,sobel,thresh)根据,10,程序举例:,clear all,close all,I1=imread(C:Users11Desktopwuguo.jpg);,I=rgb2gray(I1);,subplot(1,2,1);,imshow(I);,subplot(1,2,2);,J=edge(I);,imshow(J);,程序举例:,11,显示结果,图2、左图为灰度图,右图为边缘检测后显示的图形,显示结果图2、左图为灰度图,右图为边缘检测后显示的图形,12,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指定的多边形区域。,3、选择图像中的多边形区域(roipoly)以及按灰度值选择,13,程序举例:,clc,clear,filename,pathname,q=uigetfile(*.*;*.bmp;*.jpg;*.png);,if q0,lujing=strcat(pathname,filename);,I=imread(lujing);,figure,imshow(I);,end,p=size(I,3);,if p=3,r=I(:,:,1);,g=I(:,:,2);,b=I(:,:,3);,I1=rgb2gray(I);,程序举例:,14,else,I1=I;,end,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,end,end,line(m(k-1)m(1),n(k-1)n(1);,else,15,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,BW=roipoly(I1,m,n);,16,图3、左图为显示输入的图像,右图为经过鼠标剪切过之后的显示图像,显示结果:,图3、左图为显示输入的图像,右图为经过鼠标剪切过之后的显示图,17,、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相匹配的地方。,、roicolor 功能:可以根据颜色选定区域。,18,程序举例:,clear all,close all,I1=imread(C:Users11Desktopwuguo.jpg);,I=rgb2gray(I1);,J=roicolor(I,5,30);,subplot(1,2,1);,imshow(I);,subplot(1,2,2);,imshow(J),程序举例:,19,结果显示:,图4、左图为输入图像,右图为对图像进行灰度区域选择产生的图像,结果显示:图4、左图为输入图像,右图为对图像进行灰度区域选择,20,、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);,、roifilt2,21,参考程序,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;,参考程序,22,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,end,end,line(m(k-1)m(1),n(k-1)n(1);,while(c=1),23,BW=roipoly(I,m,n);,h=fspecial(unsharp);,%指定滤波器,J=roifilt2(h,I,BW);,figure,imshow(J)%,figure,imshow(J),BW=roipoly(I,m,n);,24,结果展示,结果展示,25,数字图象处理学生讲义课件,26,、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大小一致)掩模填充此区域。如果为多个多边形,则分别执行插值填充。,、roifill(ROIregion-of-inter,27,参考程序,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;,参考程序,28,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,end,end,line(m(k-1)m(1),n(k-1)n(1);,J=roifill(I,m,n);,figure,imshow(J),while(c=1),29,结果展示:,图6、左图为没填充的图片,有图为对选择区域进行填充的图片,结果展示:图6、左图为没填充的
展开阅读全文