资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,数字图像处理,浙江大学,数字图像处理浙江大学,/1,、图像的读取和显示,/2,、图像的点运算,/4,、空间域图像增强,/5,、频率域图像增强,/6,、彩色图像处理,/7,、形态学图像处理,/8,、图像分割,/9,、特征提取,/3,、图像的几何变换,/1、图像的读取和显示/2、图像的点运算/4、空间域图像增强,/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);,/1、图像的读取和显示一、图像的读取A=imread(FIL,/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,个位置上。,/1、图像的读取和显示三、图像的显示imshow(I,lo,/1,、图像的读取和显示,四、图像的格式转换,im2bw(I,LEVEL);,rgb2gray;,从,RGB,图创建灰度图,存储类型不变。,im2uint8,将图像转换成,uint8,类型,阈值法从灰度图、,RGB,图创建二值图。,LEVEL,为指定的阈值;(,0,1,)。,im2double,将图像转换成,double,类型,/1、图像的读取和显示四、图像的格式转换im2bw(I,LE,/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);%,绘制归一化直方图,一、图像直方图,图像直方图归一化,/2、图像的点运算 灰度直方图描述了一副图像,数字图像处理ppt课件-下载,/2,、图像的点运算,二、灰度的线性变换,Fa1,时,输出图像的对比度将增大;,Fa1,时,输出图像对比度将减小。,Fa=1,且,Fb,非零时,所有像素的灰度值上移或下移,使整个图像更暗或,更亮。,Fa1时,输出图像的对,数字图像处理ppt课件-下载,数字图像处理ppt课件-下载,/2,、图像的点运算,三、灰度的对数变换,c,为尺度比例常数,,s,为源灰度值,,t,为变换后的目标灰度值。,k,为常数。灰度的对数变换可以增强一幅图像中较暗部分的细节,可用来扩展被压缩的高值图像中的较暗像素。广泛应用于频谱图像的显示中。,Warning,:,log,函数会对输入图像矩阵,s,中的每个元素进行,操作,但仅能处理,double,类型的矩阵。而从图像文件中得到的,图像矩阵大多是,uint8,类型的,故需先进行,im2double,数据类型,转换。,/2、图像的点运算三、灰度的对数变换c为尺度比例常数,s为源,I=imread(nir.bmp);%,读入图像,F=fft2(im2double(I);%FFT,F=fftshift(F);%FFT,频谱平移,F=abs(F);,T=log(F+1);%,频谱对数变换,figure;imshow(F,);title(,未经变换的频谱,);,figure;imshow(T,);title(,对数变换后,);,I=imread(nir.bmp);%读入图像,/2,、图像的点运算,三、灰度的,Gamma,变换,其中,,x,、,y,的取值范围为,0,1,。,esp,为补偿系数,,r,则为,Gamma,系数。,Gamma,变换是根据,r,的不同取值选择性的增强低灰度区域的对比度,或者高灰度区域的对比度。,/2、图像的点运算三、灰度的Gamma变换其中,x、y的取值,J=imadjust(I,low_in high_in,low_out high_out,gamma),I=imread(nir.bmp);,figure;imshow(imadjust(I,0.75); %gamma=0.5,title(Gamma 0.5);,原,NIR,图像,Gamma 0.5,J=imadjust(I,low_in high_in,四、灰度阈值变换及二值化,Gamma 1.5,T,为指定阈值,BW=im2bw(I,level);%level,为人工设定阈值范围为,0 ,1,thresh=graythresh(I);%,自动设定所需的最优化阈值,四、灰度阈值变换及二值化Gamma 1.5T为指定阈值BW,OTSU,算法:最大类间方差法自动单阈值分割。,Kapur,算法:一维直方图熵阈值算法,niblack,算法:局部阈值分割,阈值的计算公式是,T = m + k*v,,其中,m,为以该像素点为中心的区域的平均灰度值,,v,是该区域的标准差,,k,是一个系数。,kittlerMet :,表示,kittler,最小分类错误,(minimum error thresholding),全局二值化算法。,原图像,直接阈值分割,0.25,OTSU算法:最大类间方差法自动单阈值分割。Kapur算法:,自动阈值分割,OTSU,算法分割,KittlerMet,算法,Niblack,算法,Kapur,算法,自动阈值分割OTSU算法分割KittlerMet算法Nibl,/2,、图像的点运算,五、直方图均衡化,J,T=histeq(I);%J,为输出图像,,T,为变换矩阵,图像易受光照、视角、方位、噪声等的影响。使得同一类图像的不同变形体之间的差距有时大于该类图像与另一类图像之间的差距,影响图像识别、分类。图像归一化就是将图像转换到唯一的标准形式以抵抗各种变换,从而消除同类图像不同变形体之间的外观差异。也称为图像灰度归一化。,原图像及直方图,/2、图像的点运算五、直方图均衡化J,T=histeq(,图像变亮后灰度均衡化,图像变暗后灰度均衡化,图像变亮后灰度均衡化图像变暗后灰度均衡化,/3,、图像的几何变换,一、图像平移,正变换,逆变换,strel %,用来创建形态学结构元素,translate(SE,y x)%,原结构元素,SE,上,y,和,x,方向平移,imdilate%,形态学膨胀,/3、图像的几何变换一、图像平移正变换逆变换,/3,、图像的几何变换,I=imread(nir.bmp);,se=translate(strel(1),180 190);,B=imdilate(I,se);,figure;subplot(1,2,1),subimage(I);title(,原图像,);,subplot(1,2,2),subimage(B);title(,平移后图像,);,/3、图像的几何变换I=imread(nir.bmp);,/3,、图像的几何变换,二、图像镜像,B=imtransform(A,TFORM,method);,TFORM=makeform(transformtype,Matrix);%,空间变换结构,Method,合法值,含义,bicubic,双三次插值,bilinear,双线性插值,nearest,最近邻插值,参数,transformtype,指定了变换的类型,常见的,affine,为二维或,多维仿射变换,包括平移、旋转、比例、拉伸和错切等。,Matrix,为相应的仿射变换矩阵。,/3、图像的几何变换二、图像镜像Method合法值含义bi,A=imread(nir.bmp);,height,width,dim=size(A);,tform=maketform(affine,-1 0 0;0 1 0;width 0 1);,B=imtransform(A,tform,nearest);,tform2=maketform(affine,1 0 0;0 -1 0;0 height 1);,C=imtransform(A,tform2,nearest);,figure;imshow(A);,figure;imshow(B);imwrite(B,nir,水平镜像,.bmp);,figure;imshow(C);imwrite(B,nir,垂直镜像,.bmp);,原图像,水平镜像图像,垂直镜像图像,A=imread(nir.bmp);原图像水平镜像图像垂,A=imread(nir.bmp);,tform=maketform(affine,0 1 0;1 0 0;0 0 1);,B=imtransform(A,tform,nearest);,figure;imshow(A);,figure;imshow(B);imwrite(B,nir,转置后图像,.bmp);,/3,、图像的几何变换,三、图像转置,A=imread(nir.bmp);/3、图像的几何变换,/3,、图像的几何变换,四、图像中心旋转,B=imrotate(A,angle,method,crop);,angle,为旋转角度,正值为逆时针旋转。可选参数,method,为,imrotate,函数,指定插值方法。,crop,选项会裁减旋转后增大的图像,保持和原图像,同样大小。,A=imread(nir.bmp);,B=imrotate(A,30,nearest,crop);,figure;imshow(B);imwrite(B,逆时针中心旋转,30,度,.bmp);,逆时针,30,度,/3、图像的几何变换四、图像中心旋转angle为旋转角度,正,/4,、空间域图像增强,一、噪声添加,h=imnoise(I,type,parameters);,type,为噪声类型,合法值如下:,gaussian,高斯白噪声:幅度为高斯分布,功率谱均匀分布,salt&pepper,黑点如胡椒,白点如盐粒。由图像传感器、传输信道、解码处理、图像切割等产生的黑白相间的亮暗点噪声。,添加高斯白噪声,添加椒盐噪声,/4、空间域图像增强一、噪声添加h=imnoise(I,ty,/4,、空间域图像增强,二、空间域滤波,滤波过程就是在图像,f(x,y),中逐点移动模板,使模板中心和点,(x,y),重合,滤波器,在每一点,(x,y),的响应是根据模板的具体内容并通过预先定义的关系来计算的。,W(-1,-1),W(-1,0),W(-1,1),W(0,-1),W(0,0),W(0,1),W(1,-1),W(1,0),W(1, 1),f(x-1,y-1),f(x-1,y),f(x-1,y+1),f(x,y-1),f(x,y),f(x,y+1),f(x+1,y-1),f(x+1,y),f(x+1,y+1),/4、空间域图像增强二、空间域滤波滤波过程就是在图像f(x,B=imfilter(f,w,option1,option2,);,f,为要进行滤波操作的图像。,w,为滤波操作使用的模板,为一个二维数组,可自己定义。,option1,是可选项,包括:,1,、边界选项(,symmetric,、,replicate,、,circular,),2,、尺寸选项(,same,、,full,),3,、模式选项(,corr,、,conv,),原图像,滤波后图像,f 为要进行滤波操作的图像。原图像滤波后图像,三、滤波器设计,/4,、空间域图像增强,h=fspecial(type,parameters),合法取值,功能,average,平均模板,disk,圆形领域的平均模板,gaussian,高斯模板,laplacian,拉普拉斯模板,log,高斯,-,拉普拉斯模板,prewitt,Prewitt,水平边缘检测算子,sobel,Sobel,水平边缘检测算子,parameters,为可选项,是和所选定的滤波器类型,type,相关的,配置参数,如尺寸和标准差等。,type,为滤波器的类型。其合法值如下:,三、滤波器设计/4、空间域图像增强h=fspecial(ty,/4,、空间域图像增强,四、中值滤波,h=medfilt2(I1,m,n);,m,和,n,为中值滤波处理的模板大小,默认,3*3,中值滤波本质上是一种统计排序滤波器。中值不同于均值,是指排序,队列中位于中间位置的元素的值。中值滤波并非线性滤波器。对于某,些类型的随机噪声具有非常理想的降噪能力。典型的应用就是消除椒,盐噪声。,/4、空间域图像增强四、中值滤波h=medfilt2(I1,/4,、空间域图像增强,五、图像锐化,图像锐化主要用于增强图像的灰度跳变部分,主要通过运算导数(梯度)或有限差分来实现。主要方法有:,Robert,交叉梯度,,Sobel,梯度,拉普拉斯算子,高提升滤波,高斯,-,拉普拉斯变换。,Robert,交叉梯度,w1,对接近正,45,边缘有较强响应,,w2,对接近负,45,边缘有较强响应。,/4、空间域图像增强五、图像锐化图像锐化主要用于增强图像的灰,Sobel,交叉梯度,对水平边缘有较大响应,对垂直边缘有较大响应,拉普拉斯算子,Sobel交叉梯度对水平边缘有较大响应对垂直边缘有较大响应拉,I=imread(nir.bmp);,I=double(I);%,双精度化,w1=-1 0;0 1;,w2=0 -1;1 0;,G1=imfilter(I,w1,corr,replicate);%,正,45,梯度,G2=imfilter(I,w2,corr,replicate);%,负,45,梯度,G=abs(G1)+abs(G2);%,计算,Robert,梯度,figure;imshow(G,);,figure;imshow(abs(G1),);,figure;imshow(abs(G2),);,Robert,交叉梯度,I=imread(nir.bmp);,Id=double(I);%,双精度化,h_1=fspecial(log,5,0.5);%,大小为,5,,,sigma=0.5,的,LOG,算子,I_1=imfilter(Id,h_1,corr,replicate);,figure;imshow(uint8(abs(I_1),);,h_2=fspecial(log,5,2);%,大小为,5,,,sigma=2,的,LOG,算子,I_2=imfilter(Id,h_2,corr,replicate);,figure;imshow(uint8(abs(I_2),);,高斯,-,拉普拉斯锐化,I=imread(nir.bmp);Robert交叉梯度,/5,、频率域图像增强,用傅里叶变换表示的函数特征可以完全通过傅里叶反变换进行重建而不丢失任何信息,吉布斯现象,Gibbs phenomenon,(又叫吉布斯效应): 将具有不连续点的周期函数(如矩形脉冲,),进行傅立叶级数展开后,选取有限项进行合成。当选取的项数越多,在所合成的波形中出现的峰起越靠近原信号的不连续点。当选取的项数很大时,该峰起值趋于一个常数,大约等于总跳变值的,9%,。这种现象称为吉布斯现象。,/5、频率域图像增强用傅里叶变换表示的函数特征可以完全通过傅,幅度谱,相位谱,功率谱,幅度谱相位谱功率谱,一、傅里叶变换,/5,、频率域图像增强,I=fft2(x);%,快速傅里叶变换,I=fft2(x,m,n);,x,为输入图像;,m,和,n,分别用于将,x,的第一和第二维规整到指定的长度。,当,m,和,n,均为,2,的整数次幂时算法的执行速度要比,m,和,n,均为素数时快。,I1=abs(I);%,计算,I,的幅度谱,I2=angle(I);%,计算,I,的相位谱,Y=fftshift(I);%,频谱平移,I=ifft2(x);%,快速傅里叶逆变换,I=ifft2(x,m,n);,一、傅里叶变换/5、频率域图像增强I=fft2(x);%快速,幅度谱,相位谱,平移后的相位谱,幅度谱相位谱平移后的相位谱,function out = imidealflpf(I,freq),%imidealflpf,函数 构造高斯频域低通滤波器,M,N = size(I);,out = ones(M,N);,for i=1:M,for j=1:N,if (sqrt(i-M/2)2+(j-N/2)2)freq),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,高斯低通,function out = imidealflpf(I,f,/6,、彩色图像处理,色彩模型:,RGB,模型、,CMY,模型、,CMYK,模型、,HIS,模型、,HSV,模型、,YUV,模型、,YIQ,模型。,RGB,模型,国际照明委员会(,CIE,)规定以蓝(,435.8nm,)、绿(,546.1nm,)和红(,700nm,)作为主原色。,/6、彩色图像处理色彩模型:RGB模型、CMY模型、CMYK,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,模型又称为减色法混色模型。当光,都被吸收时成为黑色,都被反射时为白色。,RGB_image=cat(3,PR,PG,PB);%将PR,CMY,模型主要用于彩色打印机和,复印机等。,CMYK,模型,CMY,模型在实际使用中,青、品红,和黄色等比例混合后的黑色并不纯,,为产生真正的黑色,专门加入第四,种颜色,黑色。得到,CMYK,模型。用,于四色打印。,cmy=imcomplement(rgb);%rgb,转成,cmy,rgb=imcomplement(cmy);cmy,转成,rgb,CMY模型主要用于彩色打印机和CMYK模型CMY模型在实际使,HSI,模型,HIS,模型是从人的视觉系统出发,直接使用颜色三要素色调(,Hue,)、饱和度(,Saturation,)和亮度(,Intensity,)来描述颜色。,亮度指人眼感觉光的明暗程度。光的能量越大,亮度越大。,色调由物体反射光线中占优势的波长决定。反映颜色的本质。,饱和度指颜色的深浅和浓淡程度,饱和度越高,颜色越深。,HIS,色彩空间比,RGB,彩色空间更符合人的视觉特性。亮度和色度具有可分离特性,使得图像处理和机器视觉中大量灰度处理算法都可在,HIS,彩色空间中方便使用。,HSI模型HIS模型是从人的视觉系统出发,直接使用颜色三要素,色调,亮度,饱和度,其中,色调亮度饱和度其中,/7,、形态学图像处理,一、二值图像腐蚀,I2=imerode(I,SE);,SE=strel(shape,parameters);,I,为原始图像,可以是二值或者灰度图像。,shape,指定了结构元素的形状。,parameters,是和输入,shape,有关的参数。,合法取值,功能描述,arbitrary,或为空,任意自定义结构元素,disk,圆形结构元素,square,正方形结构元素,rectangle,矩形结构元素,line,线性结构元素,pair,包含,2,个点的结构元素,diamond,菱形的结构元素,octagon,8,角形的结构元素,/7、形态学图像处理一、二值图像腐蚀I2=imerode(I,/7,、形态学图像处理,二、二值图像膨胀,I2=imdilate(I,SE);,SE=strel(shape,parameters);,I,为原始图像,可以是二值或者灰度图像。,shape,指定了结构元素的形状。,parameters,是和输入,shape,有关的参数。,原图像,腐蚀后,膨胀后,/7、形态学图像处理二、二值图像膨胀I2=imdilate(,/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,中连通分量个数。,/7、形态学图像处理三、其他二值图像运算SE=strel(s,/7,、形态学图像处理,五、,bwmorph,函数,Iout=bwmorph(I,operation,n),合法取值,功能描述,bridge,桥接有单个像素缝隙分割的前景像素,clean,清楚孤立的前景像素,diag,围绕对角线相连的前景像素进行填充,fill,填充单个像素的孔洞,hbreak,去掉前景中的,H,形连接,majority,如果点,P,的,8,领域中一半以上像素为前景像素,则,P,为前景像素,否则为背景。,remove,去除内部像素(无背景像素相邻的前景),shrink,将物体收缩为一个点或者带洞的环形,skel,骨骼化图像,spur,去除“毛刺”,thicken,粗化物体,thin,将物体细化至最低限度相连的线形,/7、形态学图像处理五、bwmorph函数Iout=bwmo,/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);,/7、形态学图像处理六、顶帽变换解决非均匀光照问题。顶帽变换,原图像三维可视化效果,顶帽变换后的三维可视化效果,顶帽变换后图像,对比度拉伸后效果,原图像三维可视化效果顶帽变换后的三维可视化效果顶帽变换后图像,/8,、图像分割,一、图像分割概述,图像分割一般采用的方法有边缘检测(,edge detection,)、边界跟踪(,edge tracing,)、区域生长(,region growing,)、区域分离和聚合等。,图像分割算法一般基于图像灰度值的不连续性或其相似性。,不连续性是基于图像灰度的不连续变化分割图像,如针对图像的边缘有边缘检测、边界跟踪等算法。,相似性是依据事先制定的准则将图像分割为相似的区域,如阈值分割、区域生长等。,二、边缘检测,图像的边缘点是指图像中周围像素灰度有阶跃变化或屋顶变化的那些像素点,即灰度值导数较大或极大的地方。,边缘检测可以大幅度的减少数据量,并且剔除不相关信息,保留图像重要的结构属性。,边缘检测基本步骤:平滑滤波、锐化滤波、边缘判定、边缘连接。,/8、图像分割一、图像分割概述 图像分割一般采,边缘检测算法,:,基于一阶导数:,Roberts,算子、,Sobel,算子、,Prewitt,算子,基于二阶导数:高斯,-,拉普拉斯边缘检测算子,Canny,边缘检测算法,Matlab,实现,1,)、基于梯度算子的边缘检测,BW=edge(I,type,thresh,direction,nothinning),type,合法取值,梯度算子,sobel,sobel,算子,prewitt,prewitt,算子,reberts,robert,算子,thresh,是敏感度阈值参数,任何灰度值低于此阈值的边缘将不会被检测到。默认值为空矩阵,,此时算法自动计算阈值。,边缘检测算法:Matlab实现1)、基于梯度算子的边缘检测B,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,。,direction指定了我们感兴趣的边缘方向,edge函数将,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);,3)、基于Canny算子的边缘检测BW=edge(I,ca,Sobel,算子,roberts,算子,prewitt,算子,log,算子,canny,算子,Sobel算子roberts算子prewitt算子log算子,分析,1,、,边缘定位精度方面:,Roberts,算子和,Log,算子定位精度较高。,Roberts,算子简单直观,,Log,算子利用二阶导数零交叉特性检测边缘。但,Log,算子只能获得边缘位置信息,不能得到边缘方向信息。,2,、,边缘方向的敏感性:,Sobel,算子、,Prewitt,算子检测斜向阶跃边缘效果较好,,Roberts,算子检测水平和垂直边缘效果较好。,Log,算子不具有边缘方向检测功能。,Sobel,算子能提供最精确的边缘方向估计。,3,、,去噪能力:,Roberts,算子和,Log,算子虽然定位精度高,但受噪声影响大。,Sobel,算子和,Prewitt,算子模板相对较大因而去噪能力较强,具有平滑作用,能滤除一些噪声,去掉一部分伪边缘,但同时也平滑了真正的边缘,降低了其边缘定位精度。,总体来讲,,Canny,算子边缘定位精确性和抗噪声能力效果较好,是一个折中方案。,分析1、边缘定位精度方面:,三、,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),三、Hough变换直线检测/8、图像分割步骤:H,thet,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),2、寻找峰值houghpeakspeaks=houghpe,Param,合法值,含义,FillGap,线段合并的阈值:如果对应于,Hough,矩阵某一个单元格(相同的,a,和,p,)的,2,个线段之间的距离小于,FillGap,,则合并为,1,个直线段。默认值为,20,MinLength,检测的直线段的最小长度阈值:如果检测出的直线线段长度大于,MinLength,,则保留,否则丢弃。默认值为,40,。,域,含义,point1,直线段的端点,1,point2,直线段的端点,2,theta,对应在霍夫矩阵中的,a,rho,对应在霍夫矩阵中的,p,返回值,lines,的结构,Param合法值含义线段合并的阈值:如果对应于Hough矩阵,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;,I1=imread(004.jpg);,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);,for k = 1:length(lines)%依次标出各条,原图像,Hough,矩阵,旋转并检测最长直线段,原图像Hough矩阵旋转并检测最长直线段,/9,、特征提取,特征提取的一般原则:,选择在同类图像之间差异较小(较小的类内距),在不同类别的图像之间差异较大(较大的类间距)的图像特征。,一、简单区域描绘子,周长:区域边界上的像素数目。,面积:区域中像素数目。,致密性,:(周长),2/,面积。,区域的质心。,灰度均值:区域中所有像素的平均值。,灰度中值:区域中所有像素的排序中值。,包含区域的最小矩形。,最小或最大灰度级。,大于或小于均值的像素数。,欧拉数:区域中的对象数减去这些对象的孔洞数。,/9、特征提取特征提取的一般原则:一、简单区域描绘子周长:区,D=regionprops(L,properties);,L,为一个标记矩阵,通过连通,1,区域标注函数,bwlabel,得到。,Properties,合法值,含义,Area,区域内像素总数,BoundingBox,包含区域的最小矩形,Centroid,区域的质心,ConvexHull,包含区域的最小凸多边形,EquivDiameter,和区域有着相同面积的圆的直径,EulerNumber,区域中的对象数减去这些对象的孔洞数,二、主成分分析(,Principal Component Analysis,,,PCA,),COEFF,SCORE,latent=pincomp(X);,D=regionprops(L,properties);L为,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,样本协方差矩阵的本征值,X为原始样本组成n*d的矩阵,其每一行是一个样本,图像分割,图像分割,Contents,8.1,图像分割定义,8.2,使用阈值进行图像分割,8.3,基于梯度的图像分割方法,8.4,边缘检测和连接,Contents 8.1 图像分割定义 8.2 使用阈值,Contents,8.5,区域增长,(Region Growing),8.6,二值图像处理,(Binary Image Processing),8.7,分割图像的结构,小结,Contents 8.5 区域增长(Region Grow,8.1,图像分割定义,图像分割处理定义:,将数字图像划分成互不相交(不重叠)区域的过程,.,区域,(region),定义,:,像素的连通集。,连通,(connectedness),定义,:,在一个连通集中的任意两个像素之间,存住一条完全由这个集合的元素构成的连通路径。,8.1 图像分割定义 图像分割处理定义:,8.2.1,全局阈值化,思想:整个图像中将灰度阈值的值设置为常数。,前提条件:如果背景的灰度值在整个图像中可合理地看作为恒定,而且所有物体与背景都具有几乎相同的对比度,那么,只要选择了正确的阈值,使用一个固定的全局阈值一般会有较好的效果。,8.2.1 全局阈值化思想:整个图像中将灰度阈值的值设置,8.2.2,自适应阈值,改进方法:在许多的情况下,背景的灰度值并不是常数,物件和背景的对比度在图像中也有变化,这时,一个在图像中某一区域效果良好的阈值在其它区域却可能效果很差。在这种情况下,把灰度阈值取成一个随图像中位置缓慢变化的函数值是适宜的。,8.2.2 自适应阈值改进方法:在许多的情况下,背景的灰度,8.2.3,最佳阈值的选择,除非图像中的物体有陡峭的边沿,否则灰度阈值的取值对所抽取物体的边界的定位和整体的尺寸有很大的影响。这意味着后续的尺寸(特别是面积)的测量对于灰度阈值的选择很敏感。由于这个原因,我们需要一个最佳的,或至少是具有一致性的方法确定阈值。,8.2.3最佳阈值的选择 除非图像中的物体有陡峭的边沿,,1.,直方图技术,含有一个与背景明显对比的物体的图像其有包含双峰的灰度直方图,1.直方图技术 含有一个与背景明显对比的物体的图像其有包含双,直方图生成,a = imread(d:pici_boat_gray.bmp);,imshow(a),figure,imhist(a),利用灰度阈值,T,对物体面积进行计算的定义是,:,直方图生成,2.,最大类间方差法,(OTSU),OTSU,算法定义:该算法是在灰度直方图的基础上用最小二乘法原理推导出来的,具有统计意义上的最佳分割阈值。,2. 最大类间方差法(OTSU)OTSU算法定义:该算法是,OTSU,基本原理:以最佳阈值将图像的灰度直方图分割成两部分,是两部分之间的方差取最大值,即分离性最大。,OTSU基本原理:以最佳阈值将图像的灰度直方图分割成两部分,,3.,迭代法求阈值,原理:图像中前景与背景之间的灰度分布为相互不重叠,在该前提下,实现对两类对象的阈值分割方法。,3. 迭代法求阈值,8.3,基于梯度的图像分割方法,思路对比:,区域分割方法:通过将图像划分为内部点集和外部点集来实现分割。,边界方法:利用边界具有高梯度值的性质直接把边界找出来。,8.3基于梯度的图像分割方法,8.3.1,边界跟踪,算法步骤,1,:我们从一个梯度幅值图像着手进行处理,,这个图像是从一幅处于和物体具有反差的,背景中的单一物体的图像进行计算得来的。,2:,搜索以边界起始点为中心的,33,邻域,找,出具有最大灰度级的邻域点作为第,2,个边界点。,8.3.1边界跟踪算法步骤,8.3.2,梯度图像二值化,如果用适中的阈值对一幅梯度图像进行二值化,,Kirsch,的分割法利用了这种现象。,算法步骤,用一个中偏低的灰度阈值对梯度图像进行二值化从而检测出物体和背景,物体与背景被处于阈值之上的边界点带分开。随着阈值逐渐提高,就引起物体和背景的同时增长。当它们接触上而又不至于合并时,可用接触点来定义边界。这是分水岭算法在梯度图像中的应用。,8.3.2梯度图像二值化如果用适中的阈值对一幅梯度图像进行二,Kirsch,的分割算法,数字图像处理ppt课件-下载,8.3.3,拉普拉斯边缘检测,拉普拉斯算于是对二维函数进行运算的二阶导数标量算子。它定义为,:,8.3.3拉普拉斯边缘检测拉普拉斯算于是对二维函数进行运算,一个无噪声图像具有陡峭的边缘,可用拉普拉斯算子将它们找出来。对经拉普拉斯算子滤波后的图像用零灰度值进行二值化会产生闭合的、连通的轮廓并消除了所有的内部点。但是由于噪声的存在,在运用拉普拉斯算子之前需要先进行低通滤波。,一个无噪声图像具有陡峭的边缘,可用拉普拉斯算子将它们找,选用高斯低通滤波器进行预先平滑是很合适的。由卷积的结合律可以将拉普拉斯算子和高斯脉冲响应组合成一个单一的高斯拉普拉斯核:,这个脉冲响应对,x,和,y,是可分离的,因此可以有效地加以实现。,选用高斯低通滤波器进行预先平滑是很合适的。由卷积的结合律可以,8.4,边缘检测和连接,边缘点 :确定图像中的物体边界的另一种方法是,先检测每个像素和其直接邻域的状态,,以决定该像素是否确实处于一个物体的,边界上。具有所需特性的像素被标为边,缘点。,边缘图像,:,当图像中各个像素的灰度级用来反映各,像素符合边缘像素要求的程度时,这种,图像被称为边缘图像。,8.4 边缘检测和连接边缘点 :确定图像中的物体边界的另一,8.4.1,边缘检测,边缘检测算子检查每个像素的邻域并对灰度变化率进行量化,通常也包括方向的确定。有若干种方法可以使用,其中大多数是基于方向导数掩模求卷积的方法。,8.4.1边缘检测 边缘检测算子检查每个像素的邻域并对灰度,R,oherts,边缘算子,其中,,f,(,x,,,y,),是具有整数像素坐标的输入图像。其中的平方根运算使该处理类似于人类视觉系统中发生的过程。,Roherts边缘算子,Sobel,边缘算子,两个卷积核形成了,Sobel,边缘算子。图像中的每个点都用这两个核做卷积。一个核对通常的垂直边缘响应最大而另一个对水平边缘响应最大。两个卷积的最大值作为该点的输出值。运算结果是一幅边缘幅度图像。,Sobel边缘算子,Sobel,边缘算子图,Sobel边缘算子图,P,rewitt,边缘算子,Prewitr,边缘算子,Prewitt边缘算子,Kirsch,边缘算子,图像中的每个点均与这,8,个模板进行卷积,每个掩模对某个特定边缘方向作出最大响应。所有,8,个方向中的最大值作为边缘幅度图像的输出。最大响应掩模的序号构成了对边缘方向的编码。,Kirsch,算子的梯度幅度值,Kirsch边缘算子 图像中的每个点均与这8个模板进行,Kirsch,边缘算子,Kirsch边缘算子,Kirsch,边缘算子,Kirsch边缘算子,边缘检测器性能,:,使用两个掩模板组成边缘检测,器时,通常取较大得幅度作为输出值。这使,得它们对边缘的走向有些敏感。取它们的,平方和的开方可以获得性能更,致的全方位,响应。这与真实的梯度值更接近。,边缘检测器性能:使用两个掩模板组成边缘检测,边缘提取方法原图,数字图像处理ppt课件-下载,边缘提取方法边缘提取后,数字图像处理ppt课件-下载,8.4.2,边缘连接,问题:,如果边缘很明显,而且噪声级低,那么可以将边缘图像二值化并将其细化为单像素宽的闭合连通边界图。然而在非理想条件下,这种边缘图像会有间隙出现,需要加以填充。,8.4.2边缘连接问题:,填充小的间隙可以简单地实现,通过搜索一个以某端点为中心的,55,或更大的邻域,在邻域中找出其它端点并填充上必要的边界像素,从而将它们连接起来。,对具有许多边缘点的复杂场景,这种方法可能会对图像过度分割。为了避免过度的分割,可以规定:两个端点只有在边缘强度和走向相近的情况下才能连接。,填充小的间隙可以简单地实现,通过搜索一个以某端点为中心的5,解决方法,启发式搜索,曲线拟合,Hough,变换,解决方法启发式搜索,(1),启发式搜索,假定在一幅边缘图像的某条边界上有一个像间隙的缺口,但是这 个缺口太长而不能仅用一条直线填充,它还可能不是同一条边界 上的缺口,可能在两条边界上。作为质量的度量,我们可以建立 一个可以在任意连接两端点(称为,A,,,B,)的路径上进行计算的函数。,。,(1) 启发式搜索,如果边缘质量函数很复杂而且要评价的缺口既多又长,启发式搜索技术的计算会很复杂。这样的技术在相对简单的图像中性能很好,但不一定能找出两端点间的全局最佳路径。,(2),曲线拟合,假定有一组散布在两个特定边缘点,A,和,B,之间的边缘点,我们希望从中选取一个子集作为从,A,到,B,一条分段线性路径上的结点集。,首先:从,A,到,B,引一条直线。,其次:接着计算其它的每个边缘点到该直线的垂直距离。,(2) 曲线拟合,(3) Hough,变换,直线,y=mx+b,可用极坐标表示为,其中定义了一个从原点到线上最近点的向量。这个向量与该直线垂直。,(3) Hough变换直线y=mx+b可用极坐标表示为,如果有一组位于
展开阅读全文