收藏 分销(赏)

Matlab图像处理简易入门教程PPT学习课件.ppt

上传人:w****g 文档编号:10251003 上传时间:2025-04-30 格式:PPT 页数:64 大小:12.89MB
下载 相关 举报
Matlab图像处理简易入门教程PPT学习课件.ppt_第1页
第1页 / 共64页
Matlab图像处理简易入门教程PPT学习课件.ppt_第2页
第2页 / 共64页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Matlab,数字图像处理,1,/1,、图像的读取和显示,/2,、图像的点运算,/4,、空间域图像增强,/5,、频率域图像增强,/6,、彩色图像处理,/7,、形态学图像处理,/8,、图像分割,/9,、特征提取,内容安排,/3,、图像的几何变换,2,/1,、图像的读取和显示,一、图像的读取,A=imread(FILENAME,FMT),FILENAME,指定图像文件的完整路径和文件名。如果在,work,工作目录下,只需提供文件名。,FMT,为图像文件的格式对应的标准扩展名。,I_1=imread(D:10.06.08nirTTC10377.BMP);%,读入图像,二、图像的写入,imwrite(A,,,FILENAME,FMT),FILENAME,参数指定文件名。,FMT,为保存文件采用的格式。,imwrite(I6,nirdilatedisk2TTC10373.bmp);,3,2025/4/30 周三,/1,、图像的读取和显示,三、图像的显示,imshow(I,low high),I,为要显示的图像矩阵。,low high,为指定显示灰度图像的灰度范围。,高于,high,的像素被显示成白色;低于,low,的像素被显示成黑色;介于,High,和,low,之间的像素被按比例拉伸后显示为各种等级的灰色。,figure,;,imshow(I6);title(The Main Pass Part of TTC10373);,figure,;,%,创建一个新的窗口,figure,;,subplot,(,m,n,p,);,imshow,(,I,);,Subplot(m,n,p),含义为:打开一个有,m,行,n,列图像位置的窗口,,并将焦点位于第,p,个位置上。,4,2025/4/30 周三,/1,、图像的读取和显示,四、图像的格式转换,im2bw(I,LEVEL);,rgb2gray;,从,RGB,图创建灰度图,存储类型不变。,im2uint8,将图像转换成,uint8,类型,阈值法从灰度图、,RGB,图创建二值图。,LEVEL,为指定的阈值;(,0,1,)。,im2double,将图像转换成,double,类型,5,2025/4/30 周三,/2,、图像的点运算,灰度直方图描述了一副图像的灰度级统计信息,主要应用于图像分,割和图像灰度变换等处理过程中。从数学角度来说,图像直方图描述图,像各个灰度级的统计特性,它是图像灰度值的函数,统计一幅图像中各,个灰度级出现的次数或概率。归一化直方图可以直接反映不同灰度级出,现的比率。横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各,个灰度级别的像素在图像中出现的次数或概率。,imhist(I);%,灰度直方图,I=imread(red.bmp);%,读入图像,figure;%,打开新窗口,M,N=size(I);%,计算图像大小,counts,x=imhist(I,32);%,计算有,32,个小区间的灰度直方图,counts=counts/M/N;%,计算归一化灰度直方图各区间的值,stem(x,counts);%,绘制归一化直方图,一、图像直方图,图像直方图归一化,6,2025/4/30 周三,7,2025/4/30 周三,/2,、图像的点运算,二、灰度的线性变换,Fa1,时,输出图像的对比度将增大;,Fa1,时,输出图像对比度将减小。,Fa=1,且,Fb,非零时,所有像素的灰度值上移或下移,使整个图像更暗或,更亮。,Fafreq),out(i,j)=0;,end,end,end,理想低通,function out=imgaussflpf(I,sigma),%imgaussflpf,函数 构造高斯频域低通滤波器,M,N=size(I);,out=ones(M,N);,for i=1:M,forj=1:N,out(i,j)=exp(-(i-M/2)2+(j-N/2)2)/2/sigma2);,end,end,高斯低通,38,2025/4/30 周三,/6,、彩色图像处理,色彩模型:,RGB,模型、,CMY,模型、,CMYK,模型、,HIS,模型、,HSV,模型、,YUV,模型、,YIQ,模型。,RGB,模型,国际照明委员会(,CIE,)规定以蓝(,435.8nm,)、绿(,546.1nm,)和红(,700nm,)作为主原色。,39,2025/4/30 周三,RGB_image=cat(3,PR,PG,PB);%,将,PR,、,PG,、,PB,三个矩阵在第,3,个维度上进行级联,进行图像合成,PR=RGB_image(:,:,1);%,提取红色分量,PG=RGB_image(:,:,2);%,提取绿色分量,PB=RGB_image(:,:,3);%,提取蓝色分量,Matlab,中一幅,RGB,图像可表示为一个,M*N*3,的,3,维矩阵。其中每一个,彩色像素都在特定空间位置的彩色图像中对应红、绿、蓝,3,个分量。,CMY,模型,CMY,模型是采用(,Cyan,、,Magenta,、,Yellow,)青、品红、,黄色,3,中基本原色按一定比例合成颜色。由于色彩的显,示是由光线被物体吸收掉一部分之后反射回来的剩余,光线产生,故,CMY,模型又称为减色法混色模型。当光,都被吸收时成为黑色,都被反射时为白色。,40,2025/4/30 周三,CMY,模型主要用于彩色打印机和,复印机等。,CMYK,模型,CMY,模型在实际使用中,青、品红,和黄色等比例混合后的黑色并不纯,,为产生真正的黑色,专门加入第四,种颜色,黑色。得到,CMYK,模型。用,于四色打印。,cmy=imcomplement(rgb);%rgb,转成,cmy,rgb=imcomplement(cmy);cmy,转成,rgb,41,2025/4/30 周三,HSI,模型,HIS,模型是从人的视觉系统出发,直接使用颜色三要素色调(,Hue,)、饱和度(,Saturation,)和亮度(,Intensity,)来描述颜色。,亮度指人眼感觉光的明暗程度。光的能量越大,亮度越大。,色调由物体反射光线中占优势的波长决定。反映颜色的本质。,饱和度指颜色的深浅和浓淡程度,饱和度越高,颜色越深。,HIS,色彩空间比,RGB,彩色空间更符合人的视觉特性。亮度和色度具有可分离特性,使得图像处理和机器视觉中大量灰度处理算法都可在,HIS,彩色空间中方便使用。,42,2025/4/30 周三,色调,强度,饱和度,其中,43,2025/4/30 周三,/7,、形态学图像处理,一、二值图像腐蚀,I2=imerode(I,SE);,SE=strel(shape,parameters);,I,为原始图像,可以是二值或者灰度图像。,shape,指定了结构元素的形状。,parameters,是和输入,shape,有关的参数。,合法取值,功能描述,arbitrary,或为空,任意自定义结构元素,disk,圆形结构元素,square,正方形结构元素,rectangle,矩形结构元素,line,线性结构元素,pair,包含,2,个点的结构元素,diamond,菱形的结构元素,octagon,8,角形的结构元素,44,2025/4/30 周三,/7,、形态学图像处理,二、二值图像膨胀,I2=imdilate(I,SE);,SE=strel(shape,parameters);,I,为原始图像,可以是二值或者灰度图像。,shape,指定了结构元素的形状。,parameters,是和输入,shape,有关的参数。,原图像,腐蚀后,膨胀后,45,2025/4/30 周三,/7,、形态学图像处理,三、其他二值图像运算,SE=strel(shape,parameters);,I2=imopen(I,SE);%,开运算,I3=imclose(I,SE);%,闭运算,Ihm=bwhitmiss(I,SE1,SE2);%,击中击不中变换,四、连通分量提取,L num=bwlabel(Ibw,conn);,Ibw,为一幅输入二值图像。,conn,为可选参数,指明提取连通分量是,4,连通还是,8,连通。默认为,8,。,L,为连通分量标注图像。,num,为二值图像,Ibw,中连通分量个数。,46,2025/4/30 周三,/7,、形态学图像处理,五、,bwmorph,函数,Iout=bwmorph(I,operation,n),合法取值,功能描述,bridge,桥接有单个像素缝隙分割的前景像素,clean,清楚孤立的前景像素,diag,围绕对角线相连的前景像素进行填充,fill,填充单个像素的孔洞,hbreak,去掉前景中的,H,形连接,majority,如果点,P,的,8,领域中一半以上像素为前景像素,则,P,为前景像素,否则为背景。,remove,去除内部像素(无背景像素相邻的前景),shrink,将物体收缩为一个点或者带洞的环形,skel,骨骼化图像,spur,去除“毛刺”,thicken,粗化物体,thin,将物体细化至最低限度相连的线形,47,2025/4/30 周三,/7,、形态学图像处理,六、顶帽变换,解决非均匀光照问题。顶帽变换定义为图像,f,与图像,f,的开运算之差。,a=imread(red.bmp);,I=rgb2gray(a);,figure,surf(double(I(1:8:end,1:8:end),zlim(0 255),,,colormapgray,;%,显示图像,I,的三维可视化效果,bg=imopen(I,strel(disk,15);,%,开运算,Itophat=imsubtract(I,bg);,%,顶帽变换,figure,imshow(Itophat);,figure,surf(double(Itophat(1:8:end,1:8:end),zlim(0 255);,I2=imadjust(Itophat);,figure,imshow(I2);,48,2025/4/30 周三,原图像三维可视化效果,顶帽变换后的三维可视化效果,顶帽变换后图像,对比度拉伸后效果,49,2025/4/30 周三,/8,、图像分割,一、图像分割概述,图像分割一般采用的方法有边缘检测(,edge detection,)、边界跟踪(,edge tracing,)、区域生长(,region growing,)、区域分离和聚合等。,图像分割算法一般基于图像灰度值的不连续性或其相似性。,不连续性是基于图像灰度的不连续变化分割图像,如针对图像的边缘有边缘检测、边界跟踪等算法。,相似性是依据事先制定的准则将图像分割为相似的区域,如阈值分割、区域生长等。,二、边缘检测,图像的边缘点是指图像中周围像素灰度有阶跃变化或屋顶变化的那些像素点,即灰度值导数较大或极大的地方。,边缘检测可以大幅度的减少数据量,并且剔除不相关信息,保留图像重要的结构属性。,边缘检测基本步骤:平滑滤波、锐化滤波、边缘判定、边缘连接。,50,2025/4/30 周三,边缘检测算法,:,基于一阶导数:,Roberts,算子、,Sobel,算子、,Prewitt,算子,基于二阶导数:高斯,-,拉普拉斯边缘检测算子,Canny,边缘检测算法,Matlab,实现,1,)、基于梯度算子的边缘检测,BW=edge(I,type,thresh,direction,nothinning),type,合法取值,梯度算子,sobel,sobel,算子,prewitt,prewitt,算子,reberts,robert,算子,thresh,是敏感度阈值参数,任何灰度值低于此阈值的边缘将不会被检测到。默认值为空矩阵,,此时算法自动计算阈值。,51,2025/4/30 周三,direction,指定了我们感兴趣的边缘方向,,edge,函数将只检测,direction,中指定方向的边缘,其合法值如下:,direction,合法值,边缘方向,horizontal,水平方向,vertical,竖直方向,both,所有方向,可选参数,nothinning,,指定时可以通过跳过边缘细化算法来加快算法运行的速度。默认是,thinning,,即进行边缘细化。,2,)、基于高斯,-,拉普拉斯算子的边缘检测,BW=edge(I,log,thresh,sigma),sigma,指定生成高斯滤波器所使用的标准差。默认时,标准差为,2,。滤镜大小,n*n,,,n,的计算方法为:,n=ceil(sigma*3)*2+1,。,52,2025/4/30 周三,3,)、基于,Canny,算子的边缘检测,BW=edge(I,canny,thresh,sigma),thresh,是敏感度阈值参数,默认值为空矩阵,。此处为一列向量,为算法指定阈值的上下限。第一个元素为阈值下限,第二个元素为阈值上限。如果只指定一个阈值元素,则默认此元素为阈值上限,其,0.4,倍的值作为阈值下限。如阈值参数没有指定,则算法自行确定敏感度阈值上下限。,b1=imread(nir.bmp);,h58=fspecial(gaussian,5,0.8);,b=imfilter(b1,h58);,bw1=edge(b,sobel);,%sobel,算子,bw2=edge(b,prewitt);,%prewitt,算子,bw3=edge(b,roberts);,%roberts,算子,bw4=edge(b,log);,%log,算子,bw5=edge(b,canny);,%canny,算子,figure;imshow(bw1);imwrite(bw1,nirbwsobel.bmp);,figure;imshow(bw2);imwrite(bw2,nirbwprewitt.bmp);,figure;imshow(bw3);imwrite(bw3,nirbwroberts.bmp);,figure;imshow(bw4);imwrite(bw4,nirbwlog.bmp);,figure;imshow(bw5);imwrite(bw5,nirbwcanny.bmp);,53,2025/4/30 周三,Sobel,算子,roberts,算子,prewitt,算子,log,算子,canny,算子,54,2025/4/30 周三,分析,1,、,边缘定位精度方面:,Roberts,算子和,Log,算子定位精度较高。,Roberts,算子简单直观,,Log,算子利用二阶导数零交叉特性检测边缘。但,Log,算子只能获得边缘位置信息,不能得到边缘方向信息。,2,、,边缘方向的敏感性:,Sobel,算子、,Prewitt,算子检测斜向阶跃边缘效果较好,,Roberts,算子检测水平和垂直边缘效果较好。,Log,算子不具有边缘方向检测功能。,Sobel,算子能提供最精确的边缘方向估计。,3,、,去噪能力:,Roberts,算子和,Log,算子虽然定位精度高,但受噪声影响大。,Sobel,算子和,Prewitt,算子模板相对较大因而去噪能力较强,具有平滑作用,能滤除一些噪声,去掉一部分伪边缘,但同时也平滑了真正的边缘,降低了其边缘定位精度。,总体来讲,,Canny,算子边缘定位精确性和抗噪声能力效果较好,是一个折中方案。,55,2025/4/30 周三,三、,Hough,变换直线检测,/8,、图像分割,步骤:,利用,hough,()函数执行霍夫变换,得到霍夫矩阵;,利用,houghpeaks,()函数在霍夫矩阵中寻找峰值点;,利用,houghlines,()函数在之前两步结果的基础上得到原二值图像,中的直线信息。,H,theta,rho=hough(BW,param1,val1,param2,val2),1,、霍夫变换,(,针对二值图像,),Param,合法值,含义,ThetaResolution,Hough,矩阵中,a,轴方向上单位区间长度,,0,90,RhoResolution,Hough,矩阵中,p,轴方向上单位区间长度,,0,norm(size(BW),56,2025/4/30 周三,2,、寻找峰值,houghpeaks,peaks=houghpeaks(H,numpeaks,param1,val1,param2,val2),Param,合法值,含义,Threshold,峰值的阈值,默认为,0.5*max(H(:),NHoodSize,在每次检测出一个峰值后,,NHoodSize,指出了在该峰值周围需要清零的邻阈信息。以向量,M N,形式给出,其中,M,、,N,均为正奇数。默认为大于等于,size(H)/50,的最小奇数,peaks,是一个,Q*2,的矩阵,每行的两个元素分别为某一峰值点在,Hough,矩阵中的行、列索引,,Q,为找到的峰值点的数目。,3,、提取直线段,houghlines,lines=houghlines(BW,theta,rho,peaks,param1,val1,param2,val2),57,2025/4/30 周三,Param,合法值,含义,FillGap,线段合并的阈值:如果对应于,Hough,矩阵某一个单元格(相同的,a,和,p,)的,2,个线段之间的距离小于,FillGap,,则合并为,1,个直线段。默认值为,20,MinLength,检测的直线段的最小长度阈值:如果检测出的直线线段长度大于,MinLength,,则保留,否则丢弃。默认值为,40,。,域,含义,point1,直线段的端点,1,point2,直线段的端点,2,theta,对应在霍夫矩阵中的,a,rho,对应在霍夫矩阵中的,p,返回值,lines,的结构,58,2025/4/30 周三,I1=imread(004.jpg);,I=rgb2gray(I1);,%,旋转图像并寻找边缘,rotI=imrotate(I,33,crop);,BW=edge(rotI,canny);,%,执行,Hough,变换并显示,Hough,矩阵,H,T,R=hough(BW);,figure;imshow(H,XData,T,YData,R,InitialMagnification,fit);,xlabel(theta),ylabel(rho);,axis on,axis normal,hold on;,%,在,Hough,矩阵中寻找前,5,个大于,Hough,矩阵中最大值,0.3,倍的峰值,P=houghpeaks(H,5,threshold,ceil(0.3*max(H(:);,x=T(P(:,2);y=R(P(:,1);%,由行、列索引转换成实际坐标,plot(x,y,s,color,white);%,在,Hough,矩阵图像中标出峰值位置,%,找出并绘制直线,lines=houghlines(BW,T,R,P,FillGap,5,MinLength,7);%,合并距离小于,5,的线段,丢弃所有长度小于,7,的直线段,figure,imshow(rotI),hold on,max_len=0;,59,2025/4/30 周三,for k=1:length(lines)%,依次标出各条直线段,xy=lines(k).point1;lines(k).point2;,plot(xy(:,1),xy(:,2),x,LineWidth,2,Color,green);,%,绘制线段端点,plot(xy(1,1),xy(1,2),x,LineWidth,2,Color,yellow);,plot(xy(2,1),xy(2,2),x,LineWidth,2,Color,red);,%,确定最长的线段,len=norm(lines(k).point1-lines(k).point2);,if(lenmax_len),max_len=len;,xy_long=xy;,end,end,%,高亮显示最长线段,plot(xy_long(:,1),xy_long(:,2),LineWidth,2,Color,cyan);,60,2025/4/30 周三,原图像,Hough,矩阵,旋转并检测最长直线段,61,2025/4/30 周三,/9,、特征提取,特征提取的一般原则:,选择在同类图像之间差异较小(较小的类内距),在不同类别的图像之间差异较大(较大的类间距)的图像特征。,一、简单区域描绘子,周长:区域边界上的像素数目。,面积:区域中像素数目。,致密性,:(周长),2/,面积。,区域的质心。,灰度均值:区域中所有像素的平均值。,灰度中值:区域中所有像素的排序中值。,包含区域的最小矩形。,最小或最大灰度级。,大于或小于均值的像素数。,欧拉数:区域中的对象数减去这些对象的孔洞数。,62,2025/4/30 周三,D=regionprops(L,properties);,L,为一个标记矩阵,通过连通,1,区域标注函数,bwlabel,得到。,Properties,合法值,含义,Area,区域内像素总数,BoundingBox,包含区域的最小矩形,Centroid,区域的质心,ConvexHull,包含区域的最小凸多边形,EquivDiameter,和区域有着相同面积的圆的直径,EulerNumber,区域中的对象数减去这些对象的孔洞数,二、主成分分析(,Principal Component Analysis,,,PCA,),COEFF,SCORE,latent=pincomp(X);,63,2025/4/30 周三,X,为原始样本组成,n*d,的矩阵,其每一行是一个样本特征向量,每一列表示样本特征向量的一维。,COEFF,:主成分分量,也是样本协方差矩阵的本征向量。,SCORE,:主成分,,X,的低维表示。,latent,:一个包含着样本协方差矩阵本征值的向量。,X=1,2;3,3;3,5;4,5;5,6;6,5;8,7;9,3;7,6;,X,COEFF,SCORE,latent=princomp(X);%,主成分分析,COEFF%,主成分分量,SCORE%,主成分,latent%X,样本协方差矩阵的本征值,64,2025/4/30 周三,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服