-------------精选文档 -----------------1、下图是一用于干涉原理进行测试的干涉场图像,要求判读条纹的间距,请给出图像处理的方案并说明每一步的作用及其对其它处理步骤可能产生的影响。
解:步骤与思路:○1.进行模糊处理,消除噪声○2.边缘检测,进行图像增强处理○3.二值化图像,再进行边缘检测,能够得到很清晰的边界。
○4.采用横向标号法,根据值为1 像素在标号中的相邻位置可以确定间距I=imread('xz mjt.bmp');I1=medfilt2(I);%对图像中值滤波imshow(I1);[m,n]=size(I1);for i=1:mfor j=1:nif(I1(i,j)<100)% 阈值为 100I1(i,j)=255;elseI1(i,j)=0;%进行二值化-------------精选文档 -----------------endendendfigure;imshow(I1);Y1=zeros(1,25);y2=y1;c=y2;i=100;for j=1:1200if (I1(i,j)==255&&I1(i,j+1)==0)Y1=j+1;endif (I1(i,j)==0&&I1(i,j+1)==255)Y2=j;endendfor i=1:25c=Y2(i)-Y1(i)endc%找出每两个条纹之间的距离2.现有 8 个待编码的符号 m0,,m7, 它们的概率分别为0.11,0.02,0.08,0.04,0.39,0.05,0.06,0.25,利用哈夫曼编码求出这一组符号的编码并画出哈夫曼树。
3.请以图像分割方法为主题,结合具体处理实例,采用期刊论文格式,撰写一篇小论文。
各种算子对图像进行边缘检测效果的研究图像分割是根据需要将图像划分为有意义的若干区域或部分的图像处理技术。
通过边缘检测在Matlab中实现方法,及用四叉数分解函数进行区域分割的方法,掌握了 Matlab区域操作函数的使用和图像分析和理解的基本方法,并学到了 'roberts','sobel','prewitt','canny','log'算子对图像进行边缘检测的不同效果。
关键词:图像分割Prewitt算子Sobel 算子 log 算子 canny 算子一、前言图像分割技术 ( 英文:image segmentation):将图像分成互不重叠,具有各自特征的区域。
这里的特性可以是灰度、颜色或纹理等。
图像分割应满足:①分割后所得到的区域总和应覆盖整个图像;②各区域之间互不重叠;③同一区-------------精选文档 -----------------域的像元应具有某种共同特征,这些特征可以是像元值、颜色、纹理、形状等;④同一目标 (类别 )可以对应于一个区域 ,也可以对应于多个区域。
图像分割方法主要有基于边界的分割技术和基于区域的分割方法。
图像分割 (image segmentation ):根据需要将图像划分为有意义的若干区域或部分的图像处理技术。
图像的边缘是图像最基本的特征,它是灰度不连续的结果。
通过计算一阶导数或二阶导数可以方便地检测出图像中每个像素在其邻域内的灰度变化,从而检测出边缘。
图像中具有不同灰度的相邻区域之间总存在边缘。
边缘检测可借助微分算子 (包括梯度算子和拉普拉斯算子)在空间域通过模板卷积来实现。
二、梯度算子1 . Prewitt和Sobel算子常用的梯度算子如表4-3 所示 (星号代表模板中心 )。
梯度算子一般由两个模板组成,分别对应梯度的两个偏导数,用于计算两个相互垂直方向上的边缘响应。
在计算梯度幅度时,可使用式(4-25) 或式 (4-26) ,在适当的阈值下,对得到梯度图像二值化即可检测出有意义的边缘。
Krisch 算子由 8 个模板组成,其它模板可以由其中一个模板绕其中心旋转得到,每个模板都对特定的边缘方向作出最大响应。
当把最大响应的模板的序号输出时,就构成了边缘方向的编码。
Prewitt算子和Sobel算子也可以像Krisch 算子那样,扩展到两个对角方向,使其在对角方向上作出最大响应。
Prewitt和Sobel 算子在两个对角方向上的模板如图 1 所示。
1 1 0 0 1 11 0 1 1 0 1-------------精选文档 -----------------(a) Prewitt 算子 45 度和 -45 度方向模板2 1 0 0 1 21 0 1 1 0 10 1 2 2 1 0(b)Sobel 算子 45 度和 -45 度方向模板图 1Prewitt 算子和 Sobel 算子检测对角方向边缘的模板图 2(b) 为用 Sobel 水平模板对图 2(a) 进行卷积运算得到的水平梯度图,它对垂直边缘有较强的响应。
图 2(c) 为用 Sobel 垂直模板对图 2(a) 进行卷积运算得到的垂直梯度图,它对水平边缘有较强的响应。
图 5-13(d) 为 Sobel 算子梯度图。
图 2Sobel 算子边缘检测2.高斯 - 拉普拉斯 (LOG) 算子常用的两个拉普拉斯模板见图3(a) 和(b) 。
其中,第一个模板在水平和垂直4 个方向上具有各向同性,而第二个模板在水平、垂直和对角 8 个方向上具有各向同性。
然而,拉普拉斯算子一般不直接用于边缘检测,因为它作为一种二阶微分算子对噪声相当敏感,常产生双边缘,且不能检测边缘方向。
主要利用拉普拉斯算子的过零点性质确定边缘位置,以及根据其值的正负来确定边缘像素位于边缘的暗区还是明区。
图 3LOG 算子剖面及其常用的 5 ×5模板高斯 - 拉普拉斯 (LOG) 算子把高斯平滑滤波器和拉普拉斯锐化滤波器结合起来实现边缘检测, 即先通过高斯平滑抑制噪声, 以减轻噪声对拉普拉斯算子的影响,再进行拉普拉斯运算,通过检测其过零点来确定边缘位置。
因此,高斯- 拉普拉斯算子是一种性能较好的边缘检测器。
二维高斯平滑函数表示如下:h( x, y)x2y2exp22其中,σ是高斯分布的均方差, 图像被模糊的程度与其成正比。
令 r 2 =x 2 +y 2,上式对 r 求二阶导数来计算其拉普拉斯值,则有2h(r )r24 2expr2223. Canny 边缘检测Canny 边缘检测算子是一个非常普遍和有效的算子。
Canny 算子首先对灰度图像用均方差为 σ 的高斯滤波器进行平滑,然后对平滑后图像的每个像素计算梯度幅值和梯度方向。
梯度方向用于细化边缘,如果当前像素的梯度幅值不高于梯度方向上两个邻点的梯度幅值,则抑制该像素响应,从而使得边缘细化,这种方法称之为非最大抑制(Nonmaximum Suppression)。
该方法也可以结合其它边缘检测算子来细化边缘。
三、实验内容1.边缘检测(a)使用 edge 函数对图像‘ trees.tif ’进行边缘检测。
I=imread('trees.tif');imshow(I)bw1=edge(I,'roberts');bw2=edge(I,'sobel');bw3=edge(I,'prewitt');bw4=edge(I,'canny');bw5=edge(I,'log');figure,imshow(bw1)figure,imshow(bw2)figure,imshow(bw3)figure,imshow(bw4)figure,imshow(bw5)运行结果:图一边缘检测-------------精选文档 -----------------(b) 要求同时比较‘ roberts', ‘ sobel', ’ prewitt', ‘ canny', ’log' 算子检测效果。
edge 函数提供的最有效的边缘检测方法是 canny 方法。
优点 :使用两种不同的阈值分别检测强、弱边缘 ,并且仅当弱边缘与强边缘相连时,才将弱边缘包含在输出图像中。
该方法不易受噪声干扰,能够在噪声和边缘间取得较好的平衡,检测到真正的弱边缘。
2.区域操作使用区域选择函数 roicolor, 区域滤波函数 roifilt2 和区域填充函数 roifilld 对图像‘ coins.png ’或‘ liftingbody.png ’进行区域操作。
I=imread'coins.png ’);imshow(I)BW=roipoly;figure,imshow(BW)h=fspecial('unsharp');I2=roifilt2(h,I,BW);figure,imshow(I2)I3=roifill;figure,imshow(I3);I=imread('liftingbody.png');imshow(I)c=[222 272 300 270 221 194];r=[21 21 75 121 121 75];-------------精选文档 -----------------BW=roipoly(I,c,r);figure,imshow(BW)H=fspecial('unsharp');J1=roifilt2(H,I,BW);figure,imshow(J1)J2=roifill(I,c,r);figure,imshow(J2)运行结果:图二区域操作-------------精选文档 -----------------3.区域分割I=imread(' trees.tif');I=I(1+[1:128],1+[1:128]);figure,imshow(I)S=qtdecomp(I,0.2);figure,imshow(S)S=qtdecomp(I,0.1);figure,imshow(S)图三区域分割四、实验结果与分析1.边缘检测(1)使用 edge 函数对图像‘ trees.tif ’进行边缘检测。
(2)比较‘ roberts', ‘sobel', ’prewitt', ‘ canny', ‘log' 算子的检测效果:Robert算子:根据任一相互垂直方向上的差分都用来估计梯度,Robert 算子采用对角方向相邻像素只差Sobel 算子:其主要用于边缘检测,在技术上它是以离散型的差分算子,用-------------精选文档 -----------------来运算图像亮度函数的梯度的近似值,缺点是Sobel算子并没有将图像的主题与背景严格地区分开来,即Sobel算子并没有基于图像灰度进行处理,由于Sobel 算子并没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。