资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2011/12/5,#,数字图像处理,(,MATLAB,),主要内容,一、数字图像处理的基本知识,二、图像增强技术,三、图像分割,四、二值图像处理与形状分析,五、总结,基本知识,1,、一幅图像可以被看做是空间上各点光强度的集合。其数学表达式:,g =f (x,y,z,t),静止图像,单色图像,平面图像,图像强度,空间坐标,波长,时间,与时间,t,无关,与,z,轴无关,与光线的波长,无关,将图像定义一个二维函数,g=f(x,y),即平面的,静止的,单色的图像。,f(x,y),表示像素点(,x,y),的亮度值或灰度值。,空间坐标(,x,y),的数字化称为图像,采样,。,将像素灰度转换为离散的整数值的过程称为量化。,采样和量化的结果即为一个实数矩阵。,而,MATLAB,的长处就是处理矩阵运算,因此用,MATLAB,处理数字图像非常的方便。,MATLAB,中从图像文件中读取数据用函数,imread(),,这个函数的作用就是将图像文件的数据读入矩阵中,此外还可以用,imfinfo(),函数查看图像文件的信息,A,M=imread(e:matlabworktuxiangGirl.bmp,bmp),;%,图像数据的读取,将图像数据放入矩阵,A,中,颜色数据放入矩阵,M,中,像素点,A,A,采样间隔,2,、图像灰度直方图,灰度直方图是反映一幅图像中各灰度级与各灰度级像素出现的频率之间的关系。,频率,v,的计算公式:,v,i,=n,i,/n,。,n,i,是图像中灰度,i,的像素数,,n,是图像的像素总数。,MATLAB,中提供了专门绘制直方图的函数,imhist(),。绘制出一幅图像的灰度直方图。,几种具体算法形式,局部处理:平滑、锐化、对比度增强等。,迭代处理:反复对图像进行某种运算处理,直至满足条件。细化处理。,跟踪处理:选择满足适合的像素作为起始像素,检查输入图像。边缘检测,窗口处理和模板处理:只对图像的特定部分进行处理,二、图像增强技术,目的:用一系列技术改善图像的视觉效果,提高图像的清晰度;将图像转移成一种更适合于人或机器进行分析处理的形式。,方法:点运算:灰度变换、直,空间域 方图修正、局部统计,图像增强 局部运算:平滑和锐化,频率域:高通、低通滤波,同态,彩色增强、代数运算,灰度变换,可使图像动态范围增大,图像对比度扩展,图像变清晰,特征明显。其可分为线性变换、分段线性变换、非线性变换。用,imadjust,进行亮度变换。,g=imadjust(f,lin,hin,lout,hout,gamma,a,b,a,b,b,b,a,a,c,c,f(x,y),f(x,y),g(x,y),g(x,y),直方图修正法,(均衡化和规定化),直方图均衡化过程如下:,(,1,)计算原图像的灰度直方图,;,(,2,)计算原图像的灰度累积分布函数,S,k,=T(r,k,)=,,进一步求出灰度变换表;,(,3,)根据灰度变换表,将原图像各灰度级映射为新的灰度级,直方图均衡的实质是减少灰度等级换取对比度的扩大。在,MATLAB,中,,histeq,函数可以实现直方图均衡化。,直方图匹配(规定化)就是使原图像灰度图变成规定形状的直方图而对图像作修正的增强方法。,过程:(单值图像),(,1,)对原图像作直方图均衡化处理,(,2,)按照希望得到的灰度概率密度函数,求得变换函数,G(z),。,(,3,)用步骤一得到的灰度级,s,作逆变换,z=G,-1,(s)=G,-1,(T(r),matlab,工具箱中使用,histeq,的形式实现:,g=histeq(f,hspec),制定的,直方图,huoxing=imread(C:UsersAdministratorDocumentsMATLABhuxhux.jpg);,figure,imshow(huoxing);X=rgb2gray(huoxing);figure,imshow(X);,h=imhist(X);,h1=h(1:5:256);,horz=1:5:256;,subplot(3,1,1);,bar(horz,h1);axis(0 255 0 500,);,条形图,set(gca,xtick,0:50:255);,set(gca,ytick,0:50:500);,subplot(3,1,2);,stem(horz,h1,fill);,离散图,axis(0 255 0 500);,set(gca,xtick,0:50:255);,set(gca,ytick,0:50:500);,subplot(3,1,3);,plot(h,);,连续图,axis(0 255 0 500);,set(gca,xtick,0:50:255);,set(gca,ytick,0:50:500);,直方图,在数字图像处理中,常常会遇到图像中混杂有许多的噪声。因此,在进行图像处理中,有时要先进行祛除噪声的工作。最常用的祛除噪声的方法是用滤波器进行滤波处理。图像平滑通过积分过程在消除噪声的同时使得图像边缘模糊,那么图像锐化通过而使图像边缘突出、清晰。,均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。,线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(,x,,,y,),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(,x,,,y,),作为处理后图像在该点上的灰度个,g,(,x,,,y,),即个,g,(,x,,,y,),=1/m f,(,x,,,y,),m,为该模板中包含当前像素在内的像素总个数。,I=imread(e:matlabworktuxiangGirl.bmp,bmp);,J=imnoise(I,gaussian,0,0.002);,%,加入高斯噪声,h=fspecial(average,3);%,进行,均值滤波,中值滤波是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。对脉冲干扰及椒盐噪声的抑制效果好,同时能有效保护边缘少收模糊。,特性:其对离散阶跃信号、斜升信号不产生影响,连续个数小于窗口长度一半的脉冲被平滑。中值滤波后信号的基本频谱不变。,I3=medfilt2(J,3,3);,图像锐化最常用的是梯度法。,grad(x,y)=f,x,f,y,梯度是一个矢量,其大小和方向分别为:,grad(x,y)=,=arctan(f,x,/f,y,),梯度方向是,f(x,y),在该点灰度变化率最大的方向。近似表示:,grad(x,y)=,f,x,+,f,y,-1,1,-1,1,梯度算子,1,1,1,0,0,0,-1,-1,-1,-1,-1,-1,0,0,0,prewitt,算子,1,2,1,0,0,0,-1,-2,-1,-1,-2,-1,1,1,2,0,0,0,sobel,算子,1,1,1,g,,,t=edge(f,,,method,,,T,,,dir),图像分割也要用到这些算子,还有,laplacian,算子。,滤波,I=imread(,19.jpg,);,figure,B=rgb2gray(I);,C=imnoise(B,salt&pepper,0.02);,D=imfilter(B,fspecial(,average,3);,E=medfilt2(B);,subplot(1,3,2),imshow(D),title(,均值滤波,),subplot(1,3,3),imshow(D),title(,中值滤波,),subplot(1,3,1),imshow(C),title(,加入椒盐噪声图像,),锐化处理,I=imread(,19.jpg,);,A=rgb2gray(I);,figure,subplot(2,3,1),imshow(A);,title(,原图,);,hs=fspecial(,sobel,);,S=imfilter(A,hs);,hp=fspecial(,prewitt,);,P=imfilter(A,hs);,A=double(A);,%,双精度型,H=0 1 0,1-4 1,0 1 0;,%,拉普拉斯算子,J=conv2(A,H,same,);,K=A-J;,subplot(2,3,2),imshow(K);,title(,拉普拉斯锐化图像,);,B=edge(A,roberts,0.1);,subplot(2,3,3),imshow(B);,title(,罗伯特锐化图像,);,subplot(2,3,4),imshow(S);,title(,sobel,算子锐化图像,);,subplot(2,3,5),imshow(P);,title(,prewitt,算子锐化图像,);,三、图像分割,图像分割的一种重要途径是通过边缘检测。图像中边缘处像素的灰度值不连续,这种不连续性可通过求导数来检测到。常用微分算子进行边缘检测。边缘是指图像中像素灰度有阶跃变化或屋顶状变化的那些像素的集合。,常用的一阶微分算子有,Roberts,算子、,Prewitt,算子和,Sobel,算子,二阶微分算子有,Laplace,算子和,Kirsh,算子等。在实际中各种微分算子常用小区域模板来表示,微分运算是利用模板和图像卷积来实现。这些算子对噪声敏感,只适合于噪声较小不太复杂的图像。,霍夫变换线检测法,设在直角坐标系中的一条直线,l,,原点到该直线的垂直距离为,,垂线与,x,轴的夹角为,可用,来表示直线:,=xcos+ysin,直角坐标系中的一条直线对应极坐标系的一点。,0,0.5,0.5,0.5,1.0,1.0,y,x,1.0,x,y,霍夫变换检测直线的原理:,设平面上有若干点,过每点的直线系分别对应于极坐标上的一条正弦曲线。若这些正弦曲线有共同的交点(,),则这些点共线,且对应的直线方程为:,=xcos+ysin,0,0.5,0.5,0.5,1.0,1.0,y,用一幅简单的二值图像来说明,Hough,函数的用法。先建立一幅在些位置存在孤立前景像素的图像。,f=zeros(101,101);,f(1,1)=1;f(101,1)=1;,f(1,101)=1;,f(101,101)=1;,f(51,51)=1;,imshow(f);,H=hough(f);,figure,imshow(H,);,图像二值化(选取一个域值,,(5),将图像变为黑白图像),I=imread(beauty.tif);,bw=im2bw(I,0.5);%,选取阈值为,0.5,subplot(1,3,1);,imshow(I);,title(,原图,);,subplot(1,3,2);,imshow(bw);,title(,显示二值图像,);,J=find(I=150);,I(J)=255;,subplot(1,3,3);,imshow(I);,title(,图像二值化,(,域值为,150,),);,边缘检测,I=imread(,19.jpg,);,A=rgb2gray(I);,figure,subplot(1,4,1),imshow(A);,title(,原图像,),B=edge(A,sobel,0.1);,%edge,边缘检测函数,subplot(1,4,2),imshow(B);,title(,sobel,算子检测,),C=edge(A,roberts,0.1);,%0.1,为门限,subplot(1,4,3),imshow(C);,title(,roberts,算子检测,),D=edge(A,prewitt,0.1);,subplot(1,4,4),imshow(D);,title(,prewitt,算子检测,),
展开阅读全文