图像锐化处理及边缘

上传人:豆浆 文档编号:56748677 上传时间:2018-10-15 格式:PPT 页数:46 大小:1.13MB
返回 下载 相关 举报
图像锐化处理及边缘_第1页
第1页 / 共46页
图像锐化处理及边缘_第2页
第2页 / 共46页
图像锐化处理及边缘_第3页
第3页 / 共46页
图像锐化处理及边缘_第4页
第4页 / 共46页
图像锐化处理及边缘_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《图像锐化处理及边缘》由会员分享,可在线阅读,更多相关《图像锐化处理及边缘(46页珍藏版)》请在金锄头文库上搜索。

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

2、 2551 1 1 254 253 254 2540 0 0 255 255 253 2531 1 0 254 254 254 254,0 1 254 0 0 00 0 253 -1 1 00 0 255 0 -2 00 - 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 ) = f ( i ,j ) -

4、 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)+f(i,j)-f(i-1,j)*

5、 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,j) - f(i,j-1)2 1/2Gf(i,

7、j)+100; Gf(i,j)Tg(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)= f(i,j) - f(i-1,j)2+ f(i,j

8、) - f(i,j-1)2 1/2La; Gf(i,j)Tg(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 给背景规定灰度级,Gf(i,j); Gf(i,j)T g(i,j)= (6-1

9、4)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,否则将该像素的灰度值置位0;(5)将内存中的数据复制到原图像的数据区。,4处理效果图 (a

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

11、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边缘检测算子分别计算图像中各点灰度值,对它们平方之和,再开方。 (4)将缓冲区中的数据复制到原图数据区。,4效果

12、对比图,图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-tempMX+l)*fpArrayk*tempW+l; ,2 实现步骤 (1)取得原图的数

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

14、出。,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 Krisch边缘检测,6.5 高斯-拉普拉斯算子,离散情况下,拉普拉斯算子有几种不同的模板计算形式:或 或,通常的高斯拉普拉斯算子是一个55的模板:,高斯-拉普拉斯算子,2 实现步骤(1) 取得原图的数据区指针。 (2)开辟一个和原图相同大小的图像缓冲区,将原图复制到缓冲区。 (3)设置Iirsch模板1参数,调用Templat()函数对缓存图像进行卷积计算。 (4)将计算结果复制回原图,处理效果,图6-12 高斯拉普拉斯算子边缘检测,谢谢!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号