图像锐化处理及边缘.ppt_第1页
图像锐化处理及边缘.ppt_第2页
图像锐化处理及边缘.ppt_第3页
图像锐化处理及边缘.ppt_第4页
图像锐化处理及边缘.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第6章 图像锐化处理及边缘检测,杨 淑 莹 教授,天津理工大学,6.1 图像边缘锐化的基本方法,图像锐化处理目的: 增强图像边缘,目标物体的边缘鲜明,以便于提取目标物体的边界、对图像进行分割、目标区域识别、区域形状提取等,为图像理解和分析打下基础。 目前它已成为机器视觉研究领域最活跃的课题之一,在工程应用中占有十分重要的地位。 图像边缘锐化的基本方法 : 图像边缘锐化的基本方法 微分运算 梯度锐化 边缘检测,6.2 微分运算,微分运算应用在图像上,可使图像的轮廓清晰。 本节介绍的微分运算有: 纵向微分运算; 横向微分运算; 双方向一次微分运算。,1.单向微分运算,0 0 1 255 255 2

2、55 255 1 1 1 254 253 254 254 0 0 0 255 255 253 253 1 1 0 254 254 254 254,0 1 254 0 0 0 0 0 253 -1 1 0 0 0 255 0 -2 0 0 - 1 254 0 0 0,G ( i, j ) = - f ( i, j-1 ) + f ( i , j ),G ( i, j ) = f ( i , j )- f ( i-1, j ),2. 双向微分,3. 微分运算作用,相减的结果反映了图像亮度变化率的大小。 像素值保持不变的区域,相减的结果为零,即像素为黑; 像素值变化剧烈的区域,相减后得到较大的变化率

3、,像素灰度值差别越大,则得到的像素就越亮,图像的垂直边缘得到增强。,6.2.1 纵向微分运算,对灰度图像f在纵方向进行微分,按下式求得: G(i,j)=f(i,j)-f(i-1,j-1) (6-6),2实现步骤 (1)取得原图的数据区指针。 (2)开辟一块内存缓冲区,并初始化为255。 (3)每个像素依次循环,新图像缓冲区中的当前像素的灰度值等于原图中当前像素的灰度值与其左方的像素的灰度值之差的绝对值。 (4)将缓冲区中的图像复制回原图数据区。,4效果对比图 (a)原图 (b)纵向微分运算 图6-2纵向微分运算,6.2.2 横向微分运算,1理论基础,该算法的数学表达式为: G ( i, j )

4、 = f ( i ,j ) - f ( i , j-1 ) (6-7),2. 实现步骤,(1)取得原图的数据区指针。 (2)开辟一块内存缓冲区,并初始化为255。 (3)每个像素依次循环,新图像缓冲区中的当前像素的灰度值等于原图中当前像素的灰度值与其上方的像素的灰度值之差的绝对值。 (4)将缓冲区中的图像复制回原图数据区。,4效果对比图 图6-3 横向微分运算,6.2.3 双方向一次微分运算,1理论基础 对灰度图像f在纵方向和横方向两个方向进行微分。该算法是同时增强水平和垂直方向的边缘。该算法的数学表达式为: G(i,j)=sqrtf(i,j)-f(i,j-1)*f(i,j)-f(i,j-1)

5、+f(i,j)-f(i-1,j)* f(i,j)-f(i-1,j),2实现步骤,(1)取得原图的数据区指针。 (2)开辟一块内存缓冲区,并初始化为255。 (3)每个像素依次循环,原图中当前像素的灰度值与其左方的像素的灰度值之差的绝对值的平方,再加上当前像素的灰度值与其上方的像素的灰度值之差的绝对值的平方,所得的平方根即为新图像当前像素的灰度值。 (4)缓冲区中的图像复制回原图数据区。,4处理结果 (a)原图 (b)纵向微分运算 (c) 横向微分运算 (d) 双方向一次微分运算 图6-4 微分运算,6.3 梯度锐化,图像平滑往往使图像中的边界、轮廓变得模糊,为了减少这类不利效果的影响,这就需要

6、利用图像鋭化技术,使边缘变得清晰。 梯度锐化常用的方法有: 直接以梯度值代替; 辅以门限判断; 给边缘规定一个特定的灰度级; 给背景规定灰度级; 根据梯度二值化图像.,6.3.1 直接以梯度值代替,利用双方向一次微分运算,算出梯度后让梯度值等于该点的灰度值。 即f(i,j)= Gf(i,j)。 Gf(i,j)= f(i,j) - f(i-1,j)2+ f(i,j) - f(i,j-1)2 1/2 或Gf(i,j)=| f(i,j)- f(i-1,j)|+| f(i,j)- f(i,j-1)|,6.3.2辅以门限判断,1理论基础 Gf(i,j)= f(i,j) - f(i-1,j)2+ f(i,

7、j) - f(i,j-1)2 1/2 Gf(i,j)+100; Gf(i,j)T g(i,j)= f(i,j); 其它,2. 实现步骤,(1)获得原图像的首地址,及图像的宽和高; (2)开辟一块内存缓冲区,并初始化为255; (3)计算图像的像素的梯度,将结果保存在内存缓冲区; (4)比较像素的梯度是否大于30,是则将梯度值加100,不是则将该像素点的灰度值恢复,如果梯度加100大于255,将其置为255; (5)将内存中的数据复制到图像数据区。,4处理效果图 (a) 原图 (b)辅以门限判断效果图 图6-5辅以门限判断效果图,6.3.3给边缘规定一个特定的灰度级,1.理论基础 Gf(i,j)

8、= f(i,j) - f(i-1,j)2+ f(i,j) - f(i,j-1)2 1/2 La; Gf(i,j)T g(i,j)= (6-13) f(i,j); 其它 La为一指定的灰度值。,2.实现步骤,(1)获得原图像的首地址,及图像的高和宽。 (2)开辟一块内存缓冲区,并初始化为255。 (3)计算图像的像素的梯度,将结果保存在内存缓冲区。 (4)比较像素的梯度是否大于30,是则将灰度值置为255,否则恢复该像素原来的灰度值。 (5)将内存中的数据复制到图像数据区。,4效果对比图 (a)原图 (b)给边缘规定一个特定的灰度级 图6-6给边缘规定一个特定的灰度级,6.3.4 给背景规定灰度

9、级,Gf(i,j); Gf(i,j)T g(i,j)= (6-14) Lb; 其它 Lb为一对背景指定的灰度值。,6.3.5 根据梯度二值化图像,1.理论基础 对阶跃边缘,在边缘点其一阶导数取极值。由此,对每个像素取它的梯度值G(i,j),适当取门限T作如下判断: 若G(i,j)T则(i,j)点为阶跃状边缘点,255; Gf(i,j)T g(i,j)= 0; 其它,2.实现步骤,(1)获得原图像的首地址,及图像的高和宽; (2)开辟一块内存缓冲区,并初始化为255; (3)计算图像的像素的梯度; (4)将结果保存在内存缓冲区比较像素的梯度是否大于30,是则将灰度值置为255,否则将该像素的灰度

10、值置位0; (5)将内存中的数据复制到原图像的数据区。,4处理效果图 (a) 原图 (b)根据梯度二值化效果图 图6-7根据梯度二值化,6.4 边缘检测,边缘检测算子检查每个像素的邻域并对灰度变化率进行量化,通常也包括方向的确定。 大多数是基于方向导数模板求卷积的方法。,将所有的边缘模板逐一作用于图像中的每一个像素, 产生最大输出值的边缘模板方向,表示该点边缘的方向, 如果所有方向上的边缘模板接近于零,该点处没有边缘; 如果所有方向上的边缘模板输出值都近似相等,没有可靠边缘方向。,本节介绍的算子有: Roberts边缘检测算子; Sobel边缘检测算子; Prewitt边缘检测算子; Kris

11、ch边缘检测; LoG_Laplacian高斯-拉普拉斯算子。,6.4.1 Roberts边缘检测算子,1. 理论基础 Roberts算子: Gi,j=|fi,j-fi+1,j+1|+|fi+1,j-fi,j+1|; Gi,j=(fi,j-fi+1,j+1)2+(fi+1,j-fi,j+1) 2 1/2; 其中Gi,j表示处理后(i,j)点的灰度值,fi,j表示处理前该点的灰度值。 该算法的算子如下:,2 实现步骤 (1)取得原图的数据区指针。 (2)开辟一个和原图相同大小的图像缓冲区,并设定新图像初值为全白(255)。 (3)每个像素依次循环,用Roberts边缘检测算子分别计算图像中各点灰

12、度值,对它们平方之和,再开方。 (4)将缓冲区中的数据复制到原图数据区。,4效果对比图,图6-8 Roberts边缘检测效果图,6.4.2 Sobel边缘检测算子,1理论基础 (1)卷积 卷积可以简单的看成加权求和的过程。 (2)Sobel边缘检测算子,for(j=tempMY;jheight-tempH+tempMY+1;j+) for(i=tempMX;iwide-tempW+tempMX+1;i+) fResult=0; for(k=0;ktempH;k+) for(l=0;ltempW;l+) fResult=fResult+m_pdata(j-tempMY+k)*wide+(i-te

13、mpMX+l)*fpArrayk*tempW+l; ,2 实现步骤 (1)取得原图的数据区指针。 (2)开辟两个和原图相同大小的图像缓冲区,将原图复制到两个缓冲区。 (3)分别设置Sobel算子的两个模板,调用Templat()模板函数分别对两个缓冲区中的图像进行卷积计算。 (4)两个缓存图像每个像素依次循环,取两个缓存中各个像素灰度值较大者。 (5)将缓冲区中的图像复制到原图数据区。,4 处理效果,图6-9 Sobel边缘检测,6.4.3 Prewitt边缘检测算子,1 理论基础 Prewitt边缘检测算子为:,6.4.4 Krisch边缘检测,1 理论基础 以下8个卷积核组成了Kirsch

14、边缘检测算子。图像中的每个点都用8个掩模进行卷积, 所有8个方向中的最大值作为边缘幅度图像输出。,Kirsch边缘检测算子,2 实现步骤 1) 取得原图的数据区指针。 2) 开辟两个和原图相同大小的图像缓冲区,将原图复制到两个缓冲区。 3) 分别设置Kirsch算子的模板1和模板2,调用Templat()模板函数分别对两个缓冲区中的图像进行卷积计算。求出两幅缓存图像中每个像素的较大灰度值存放在缓存图像1中,并将缓存图像1拷贝到缓存图像2中。 4) 同第三步,以此类推,分别设置Kirsch算子的模板3、模板4、模板5、模板6、模板7和模板8,每次计算后,求出两幅缓存图像中灰度值较大者存放在缓存图像1中。 5) 最后将得到的结果缓存图像1复制到原图。,4 处理效果,图6-11 Kr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论