亚像素边缘检测评述

转载请注明出处:http://blog.csdn.net/lsh_2013

1 引言

数字图像的边缘检测是图像分割、目标识别、区域形状提取等图像处理领域的重要基础。在进行图像理解和分析时,第一步往往是边缘检测。目前边缘检测已经成为机器视觉领域最活跃的课题之一,其研究具有非常重要的理论意义和实际应用价值。传统的边缘检测方法的检测精度最高只能达到一个像素级,但是,随着科学技术的飞速发展,工业检测等应用对精确度的要求不断提高,传统的像素级边缘检测方法已经不能满足实际测量的需要,本文重点介绍的亚像素边缘检测能将检测精度提高到亚像素级别。

2 主题

2.1 亚像素定位原理

亚像素是将像素这个基本单位再进行细分,它是比像素还小的单位,从而提高了图像分辨率。通常情况下,亚像素边缘点存在于图像中逐渐发生过度变化的区域,我们可以利用多项式拟合等多种方法获得边缘点的亚像素位置。亚像素定位可以理解为在摄像系统硬件条件不变的情况下,用软件算法来提高边缘检测精度的方法,或者说是一种可以使分辨率小于一个像素的图像处理技术。

亚像素定位技术的应用具有一定的前提条件:1、被检测目标不是由孤立的、单个的像素点组成,而是由多个像素点组成,且这些像素点应具有一定的分布特性,如灰度分布、几何形状分布特性等;2、一般情况下,不同的目标都具有各自的特征,主要包括基于目标的灰度分布特征、几何形状特征、几何与灰度耦合特征等,能够分析并利用已知的目标特征,通过对被检测目标图像的分析、识别,最后确定出目标的准确位置。在此分析定位的过程中,采用浮点运算对目标图像进行定位,得到的目标定位精度高于整像素级的定位精度。这种利用目标特性从图像中分析,计算出最符合此特征的目标位置的方法称为图像目标亚像素定位技术。

2.2 亚像素定位国内外发展现状

目前研究的亚像素级的边缘检测算法,可以归纳为3种类型:矩方法、插值法和拟合法。

2.2.1 矩方法

Tabatabai等首先提出一种利用前三阶灰度矩对边缘进行亚像素边缘定位的算法 ,随后基于空间矩、Zernike正交矩的方法也相继被提出。Zernike矩的方法由于只需要计算3个模板,计算量比空间矩的方法要小得多。但是 ,这些方法都是针对理想边缘模型提出的。Shan等对矩方法进行了改进,使用了模糊边缘模型,更能真实反映边缘信息。矩方法的优点是计算简便,并且可以得到解析解。但是矩方法对图像噪声敏感,如果考虑模糊后的边缘模型,就会增加模型参数,使得解析解的确定变得十分困难。

2.2.2 插值法

插值法的核心是对像素点的灰度值或灰度值的导数进行插值,增加信息,以实现亚像素边缘检测。其中,研究比较多的方法有二次插值、B样条插值和切比雪夫多项式插值等。插值类的运算时间短,二次插值算法简单,可以通过硬件实现,适合在线检测。当光学系统的线扩散函数对称时,插值边缘检测的精度较高。插值法的特点同基于矩的方法类似,计算过程简单,但是容易受噪声的影响。

2.2.3 拟合法

拟合方法是通过对假设边缘模型灰度值进行拟合来获得亚像素的边缘定位。Nalwa等给出一种边缘模型为双曲正切函数的最小二乘拟合算法;Ye等提出的算法所用的边缘模型是理想边缘模型与高斯函数卷积得到的高斯型边缘函数。这两种算法都能提供较高的亚像素边缘定位精度。由于拟合不需要数值微分,而且按各灰度值到拟合曲线的距离最小进行拟合,不但合理地利用了有误差的灰度值,又可以减小灰度值误差的影响,因此拟合方法对噪声不敏感。但因模型复杂,其求解速度慢。

2.2.4 相关改进算法

1 基于改进形态学梯度和Zernike矩的亚像素边缘检测方法

该算法先利用改进的数学形态学梯度算子进行边缘点的粗定位,在像素级上确定边缘点的坐标和梯度方向;然后再根据构造的边缘点向量和参考阈值,用Zernike矩算法对边缘点进行亚像素的重新定位,实现图像的亚像素边缘检测。这种复合的图像边缘亚像素检测算法,能够很好地融合数学形态学梯度算子及Zernike矩算法的优点,具备良好的抗噪性能与亚像素精确定位能力,其计算量相对较少,能快速实现CCD图像测量系统的亚像素边缘检测。此外,由于一般测量图像简单且对比度高,若采用适当的模板窗口,该算法可具有良好的处理效

率,能够满足一般图像测量系统的实时性、亚像素精确测量要求,具备良好的应用前景。

2 基于改进的形态学梯度的样条插值亚像素边缘检测方法

此改进方法是将改进的形态学梯度滤波算子与三次样条插值法结合起来进行边缘检测,首先利用改进的数学形态学梯度滤波算子进行边缘点的粗定位,得到图像的像素级边缘;然后再利用三次样条插值法对提取出的边缘图像进行插值运算,即亚像素精定位。最后将插值后的边缘进行细化,可得到亚像素级边缘图像。

3 基于贝塞尔边缘模型的亚像素边缘检测算法

该算法首先在原有的贝塞尔点扩散函数中引入修正参数 t,并与理想边缘模型卷积,获得可修正的贝塞尔边缘灰度模型;然后,利用图像边缘的信息对该模

型进行最小二乘拟合,在拟合过程中,通过修正参数 t 对边缘模型进行修正,最终获得精确的边缘模型 ,同时考虑数字采样等因素对灰度分布的影响,得到图像边缘的亚像素位置。

关于亚像素边缘检测的改进算法还有很多,如胡树杰提出的图像亚像素检测新方法,提出了一种改进的基于正交傅里叶变换的新方法,提高了部分数字图像的亚像素边缘检测的准确性。陆凯等提出的一种快速的亚像素图像配准算法,速度较类似算法速度有较大的提高,等等。

3 总结

通常情况下,提高检测系统精度最直接的方法是提高摄像机的硬件分辨率,但价格相当昂贵。如果将512×512的摄像机分辨率提升到1024×1024,会相差几倍,甚至十几倍的价格,同时,系统的图像存储容量和图像传输速度都要随之提升,否则会造成硬件方面的不匹配。因此,通过提高硬件分辨率来提高测量系统精度的方法是不经济的,同时在各种视觉系统应用中还受到一定的限制。因此,研究利用软件处理的方法来提高测量系统的检测精度,即亚像素边缘检测方法,具有十分重大的意义。

采用多种算法相结合是提高检测精度的一个思路,如形态学和Zernike矩, 改进的形态学梯度和样条插值等。

在亚像素边缘检测方面,前人已经做了很多工作,但往往只对某些特定领域比较有效,通用的方法还是比较少,不同领域还需运用不同方法。

4 参考文献

[1] 魏本征,赵志敏,华晋.基于改进形态学梯度和Zernike矩的亚像素边缘检测方法[J]. 仪器仪表学报. 2010(4): 838-844.

[2] 刘亚威,杨丹,张小洪.基于空间矩的亚象素边缘定位技术的研究[J]. 计算机应用. 2003, 23(2): 47-49.

[3] 赵前程丁兴号邓善熙杨永跃.基于空间矩和Zernike矩的亚像素边缘检测[J]. 2004.

[4] 郑月英,钱唯德,罗俊,等.基于曲线拟合的亚像素边缘定位方法的研究[J]. 光学技术. 2007(03): 386-389.

[5] 王建民,浦昭邦,尹继学.空间矩亚像素细分算法的研究[J]. 光学技术. 1999(04): 3-6.

[6] 盛遵冰,崔贤玉,高国安.通用亚像素边缘检测算法[J]. 上海交通大学学报. 2007, 41(6): 911-915.

[7] 孙秋成,谭庆昌,安刚,等.一种亚像素精度的边缘检测方法[J]. 北京工业大学学报. 2009, 35(10): 1332-1337.

[8] 胡树杰.图像亚像素边缘检测的新方法[J]. 制造业自动化. 2012(2): 45-47.

[9] 刘变莲.亚像素边缘检测技术的研究[J]. 电脑开发与应用. 2005(11): 56-57.

[10] 陆凯,李成金,赵勋杰,等.一种快速的亚像素图像配准算法[J]. 红外技术. 2013, 35(1): 27-30.

时间: 2024-10-12 03:36:28

亚像素边缘检测评述的相关文章

亚像素数值极值检测算法总结

动机 在计算机视觉领域,经常需要检测极值位置,比如SIFT关键点检测.模板匹配获得最大响应位置.统计直方图峰值位置.边缘检测等等,有时只需要像素精度就可以,有时则需要亚像素精度.本文尝试总结几种常用的一维离散数据极值检测方法,几个算法主要来自论文<A Comparison of Algorithms for Subpixel Peak Detection>,加上自己的理解和推导. 问题定义 给定如下离散值,求其极值位置.可知125为观察极值. \[[60, 80, 100, 120, 125,

OpenCV中feature2D学习——亚像素级角点检测(cornerSubPix)

概述 除了利用Harris进行角点检测和利用Shi-Tomasi方法进行角点检测外,还可以使用cornerEigenValsAndVecs()函数和cornerMinEigenVal()函数自定义角点检测函数.如果对角点的精度有更高的要求,可以用cornerSubPix()函数将角点定位到子像素,从而取得亚像素级别的角点检测效果. cornerSubPix()函数 (1)函数原型 cornerSubPix()函数在角点检测中精确化角点位置,其函数原型如下: C++: void cornerSub

寻找Harris、Shi-Tomasi和亚像素角点

Harris.Shi-Tomasi和亚像素角点都是角点,隶属于特征点这个大类(特征点可以分为边缘.角点.斑点). 一.Harris角点检测是一种直接基于灰度图像的角点提取算法,稳定性较高,但是也可能出现有用信息丢失的情况. 函数:cornerHarris() void cv::cornerHarris ( InputArray  src,  //需要为8位单通道     OutputArray  dst,  //结果     int  blockSize, //领域大小     int  ksi

亚像素级角点定位

代码示例: #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace cv; using namespace std; #define WINDOW_NAME "Shi-Tom

OpenCv_cvFindCornerSubPix()查找亚像素级角点

如果我们进行图像处理的目的不是用于识别特征点而是进行稽核测量,则通常需要更高的精度,而cvGoodFeatureToTrack()只能提供简单的像素坐标值,但有时候我们会需要实际坐标值而不是证书坐标值,例如,我们想要确定图形中一个尖锐的峰值点的位置,但是峰值点的位置一般都不会位于一个像素点的正中心,,这时候就可以使用亚像素检测方法. 亚像素级角点的位置在社星际标定.跟踪并重建蛇形阿基的轨迹或者重建被跟踪目标的三维结构时就是一个基本的测量值.通过cvGoodFeaturesToTrack()函数可

图像处理之角点检测与亚像素角点定位

角点是图像中亮度变化最强地方反映了图像的本质特征,提取图像中的角点可以有效提高图像处理速度与精准度.所以对于整张图像来说特别重要,角点检测与提取的越准确图像处理与分析结果就越接近真实.同时角点检测对真实环境下的对象识别.对象匹配都起到决定性作用.Harr角点检测是图像处理中角点提取的经典算法之一,应用范围广发,在经典的SIFT特征提取算法中Harr角点检测起到关键作用.通常对角点检测算法都有如下要求: 1. 基于灰度图像.能够自动调整运行稳定,检测出角点的数目. 2. 对噪声不敏感.有一定的噪声

OpenCV亚像素级的角点检测

亚像素级的角点检测 目标 在本教程中我们将涉及以下内容: 使用OpenCV函数 cornerSubPix 寻找更精确的角点位置 (不是整数类型的位置,而是更精确的浮点类型位置). 理论 代码 这个教程的代码如下所示.源代码还可以从 这个链接下载得到 #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include <iostream> #inclu

OpenCV——Harris、Shi Tomas、自定义、亚像素角点检测

在图像处理和与计算机视觉领域,兴趣点(interest points),或称作关键点(keypoints).特征点(feature points) 被大量用于解决物体识别,图像识别.图像匹配.视觉跟踪.三维重建等一系列的问题.我们不再观察整幅图,而是选择某些特殊的点,然后对他们进行局部有的放矢的分析.如果能检测到足够多的这种点,同时他们的区分度很高,并且可以精确定位稳定的特征,那么这个方法就有使用价值. 图像特征类型可以被分为如下三种: <1>边缘 <2>角点 (感兴趣关键点) &

亚像素角点

Harris 角点定义为一个邻域内存在两个正交方向上梯度变化较大的点. 作 xy 平面上的二维函数,使用自相关函数可描述图像上一固定点在任意方向上的灰度变化:然后利用泰勒级数展开自相关函数,即可将其转换为矩阵特征值问题(参考博文 "光流跟踪"). 在某些应用中(如视觉测量),想获得更加精确的角点定位,可使用角点亚像素算法实现. 在提取亚像素边缘时,可以通过数学建模(最小二乘法)来描述边缘方向上一阶导数曲线,该曲线为一个二次函数:然后找到数学模型的最值点即为亚像素边缘位置. 对于 Har