CSS角点检测
角点检测
角点检测角点检测算法可归纳为3类:基于灰度图像的角点检测、基于二值图像的角点检测、基于轮廓曲线的角点检测。
基于灰度图像的角点检测又可分为基于梯度、基于模板和基于模板梯度组合3类方法,其中基于模板的方法主要考虑像素领域点的灰度变化,即图像亮度的变化,将与邻点亮度对比足够大的点定义为角点。
常见的基于模板的角点检测算法有Kitchen-Rosenfeld角点检测算法,Harris角点检测算法、KLT角点检测算法及SUSAN角点检测算法。
和其他角点检测算法相比,SUSAN角点检测算法具有算法简单、位置准确、抗噪声能力强等特点。
2算法SUSAN是Smith和Brady提出的一种图像处理方法,该算法是基于像素领域包含若干元素的近似圆形模板,对每个像素基于该模板领域的图像灰度计算角点响应函数(CRF)的数值,如果大于某阈值且为局部极大值,则认为该点为角点。
角点的精度与圆形模板大小无关,圆形模板越大,检测的角点数越多,则计算量也越大,本文圆形模板包含37个元素,该近似圆形模板结构如图1所示。
SUSAN圆形模板与物体位置关系图[1]如图2所示为SUSAN圆形模板与物体的5种几何位置关系,对于图像中非纹理区域的任一点,在以它为中心的模板窗中存在一块亮度与其相同的区域,这块区域即为SUSAN的USAN (Univalve Segment Assimilating Nucleus)区域。
USAN区域包含了图像结构的重要信息,由图可知,当模板中心像素点位于区域内部时,USAN的面积最大,当该像素点位于区域边界时,则面积为最大的一半,当该像素点为角点时,USAN区域面积约为最大的1/4。
SUSAN根据不同位置时USAN区域的面积来考察当前像素点为区域内部点、边缘点或角点。
USAN区域面积通过圆模板内各像素与中心点像素比较得到的相似点的个数总和来表示,该相似比较函数为:函数其中(x0,y0),(x,y)分别为模板中心像素点和待比较像素点的坐标,t为相似度阈值,本文该值取整幅图像灰度最大值和最小值差值的1/10。
图像角点
角点检测技术方法概述角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法,广泛应用于运动检测、图像匹配、视频跟踪、三维建模和目标识别等领域中。
也称为特征点检测。
角点通常被定义为两条边的交点,更严格的说,角点的局部邻域应该具有两个不同区域的不同方向的边界。
而实际应用中,大多数所谓的角点检测方法检测的是拥有特定特征的图像点,而不仅仅是“角点”。
这些特征点在图像中有具体的坐标,并具有某些数学特征,如局部最大或最小灰度、某些梯度特征等。
现有的角点检测算法并不是都十分的鲁棒。
很多方法都要求有大量的训练集和冗余数据来防止或减少错误特征的出现。
角点检测方法的一个很重要的评价标准是其对多幅图像中相同或相似特征的检测能力,并且能够应对光照变化、图像旋转等图像变化。
Moravec角点检测算法Moravec角点检测算法是最早的角点检测算法之一。
该算法将角点定义为具有低“自相关性”的点。
算法会检测图像的每一个像素,将像素周边的一个邻域作为一个patch,并检测这个patch和周围其他patch的相关性。
这种相关性通过两个patch间的平方差之和(SSD)来衡量,SSD值越小则相似性越高。
如果像素位于平滑图像区域内,周围的patch都会非常相似。
如果像素在边缘上,则周围的patch在与边缘正交的方向上会有很大差异,在与边缘平行的方向上则较为相似。
而如果像素是各个方向上都有变化的特征点,则周围所有的patch都不会很相似。
Moravec会计算每个像素patch和周围patch的SSD最小值作为强度值,取局部强度最大的点作为特征点。
Harris角点检测算法Moravec角点检测算法有几个很明显的缺陷:1,强度值的计算并不是各向同性的,只有离散的8个45度角方向被考虑。
因为patch的评议比较最多只有8个方向;2,由于窗口是方形并且二元的,因此相应函数会有噪声;3,对边缘的相应太简单,因为强度值尽取SSD的最小值;FAST角点检测算法Smith 和Brady在1997年提出了一种完全不同的角点提取方法,即“SUSAN (Smallest UnivalueSegment AssimilatingNucleus)”提取算子。
Harris角点检测原理详解
Harris⾓点检测原理详解1. 不同类型的⾓点在现实世界中,⾓点对应于物体的拐⾓,道路的⼗字路⼝、丁字路⼝等。
从图像分析的⾓度来定义⾓点可以有以下两种定义:1. ⾓点可以是两个边缘的⾓点;2. ⾓点是邻域内具有两个主⽅向的特征点;前者往往需要对图像边缘进⾏编码,这在很⼤程度上依赖于图像的分割与边缘提取,具有相当⼤的难度和计算量,且⼀旦待检测⽬标局部发⽣变化,很可能导致操作的失败。
早期主要有Rosenfeld和Freeman等⼈的⽅法,后期有CSS等⽅法。
基于图像灰度的⽅法通过计算点的曲率及梯度来检测⾓点,避免了第⼀类⽅法存在的缺陷,此类⽅法主要有Moravec算⼦、Forstner算⼦、Harris算⼦、SUSAN算⼦等。
image这篇⽂章主要介绍的Harris⾓点检测的算法原理,⽐较著名的⾓点检测⽅法还有jianbo Shi和Carlo Tomasi提出的Shi-Tomasi算法,这个算法开始主要是为了解决跟踪问题,⽤来衡量两幅图像的相似度,我们也可以把它看为Harris算法的改进。
OpenCV中已经对它进⾏了实现,接⼝函数名为GoodFeaturesToTrack()。
另外还有⼀个著名的⾓点检测算⼦即SUSAN算⼦,SUSAN是Smallest Univalue Segment Assimilating Nucleus(最⼩核值相似区)的缩写。
SUSAN使⽤⼀个圆形模板和⼀个圆的中⼼点,通过圆中⼼点像素与模板圆内其他像素值的⽐较,统计出与圆中⼼像素近似的像元数量,当这样的像元数量⼩于某⼀个阈值时,就被认为是要检测的⾓点。
我觉得可以把SUSAN算⼦看为Harris算法的⼀个简化。
这个算法原理⾮常简单,算法效率也⾼,所以在OpenCV中,它的接⼝函数名称为:FAST()。
2. Harris⾓点2.1 基本原理⼈眼对⾓点的识别通常是在⼀个局部的⼩区域或⼩窗⼝完成的。
如果在各个⽅向上移动这个特征的⼩窗⼝,窗⼝内区域的灰度发⽣了较⼤的变化,那么就认为在窗⼝内遇到了⾓点。
角点检测方法总结
角点检测(Corner Detection)角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法,广泛应用于运动检测、图像匹配、视频跟踪、三维建模和目标识别等领域中。
也称为特征点检测。
角点通常被定义为两条边的交点,更严格的说,角点的局部邻域应该具有两个不同区域的不同方向的边界。
而实际应用中,大多数所谓的角点检测方法检测的是拥有特定特征的图像点,而不仅仅是“角点”。
这些特征点在图像中有具体的坐标,并具有某些数学特征,如局部最大或最小灰度、某些梯度特征等。
现有的角点检测算法并不是都十分的鲁棒。
很多方法都要求有大量的训练集和冗余数据来防止或减少错误特征的出现。
角点检测方法的一个很重要的评价标准是其对多幅图像中相同或相似特征的检测能力,并且能够应对光照变化、图像旋转等图像变化。
角点检测的方法有:Moravec角点检测算法,FAST角点检测算法,Harris角点检测法和shi_tomas角点检测法等。
1.1.1Moravec角点检测算法Moravec角点检测算法Moravec角点检测算法是最早的角点检测算法之一。
该算法将角点定义为具有低“自相关性”的点。
算法会检测图像的每一个像素,将像素周边的一个邻域作为一个patch,并检测这个patch和周围其他patch 的相关性。
这种相关性通过两个patch间的平方差之和(SSD)来衡量,SSD值越小则相似性越高。
如果像素位于平滑图像区域内,周围的patch都会非常相似。
如果像素在边缘上,则周围的patch在与边缘正交的方向上会有很大差异,在与边缘平行的方向上则较为相似。
而如果像素是各个方向上都有变化的特征点,则周围所有的patch都不会很相似。
Moravec会计算每个像素patch和周围patch的SSD最小值作为强度值,取局部强度最大的点作为特征点。
Moravec角点检测算法有几个很明显的缺陷:1,强度值的计算并不是各向同性的,只有离散的8个45度角方向被考虑。
角点检测
Nobel认为c的取值有些任意且并不太令人满意,她对此进行 了改进,在CRF中去掉了因子c。Nobel将CRF定义为:
Det ( M ) AB − C 2 R= = Tr ( M ) A+ B
Harris角点检测算子特点
1.计算简单,原因是采用差分求导的方法; 差分求导的计算公式如下
∂f = f ( x + 1, y ) − f ( x, y ) ∂x ∂x ∂f = f ( x, y + 1) − f ( x, y ) ∂y
E ( x, y )
在角点处,图像窗口的偏移将造成自相关函数 自相关函数 (图像灰度的平均变化)的显著变化。 对它在像 素点 (u , v ) 展开,局部图像灰度的自相关函数 E ( x, y) 可近似表示成一次泰勒多项式形式:
E ( x, y ) = ∑ | I x +u , y + v − I u ,v |2
Moravec Operator算法流程 算法流程
1、计算每个像素点(x,y)在各个方向上的 强度变化:
Vu ,v ( x, y) =
∀a ,b in the window
∑
( I ( x + u + a, y + v + b) − I ( x + a, y + b) )
2
where the shifts (u,v) considered are: (1,0),(1,1),(0,1),(-1,1),(-1,0),(-1,-1),(0,-1),(1,-1)
(a )
(b)
(c )
Harris角点检测原理是对于一幅图像,角点与自相关函数的 曲率特性有关。自相关函数描述了局部图像灰度的变化程 度,可表示为:
基于CSS角点检测的快速匹配算法
第26卷第2期2019年2月电光与控制Electronics Optics&ControlVol.26No.2Feb.2019引用格式:吴禄慎,万尧,陈华伟,等•基于CSS角点检测的快速匹配算法[J].电光与控制,2019,26(2):28-31.WU L S.WAN Y.CHEN H W,et al.A fast matching algorithm based on CSS comer detection[J].Electronics Optics&Control,2019,26(2):28-31.基于css角点检测的快速匹配算法吴禄慎,万尧,陈华伟,胡贅(南昌大学机电工程学院,南昌330031)摘要:为了实现准确、快速的图像匹配,从角点检测与描述子两方面入手,提出了一种基于CSS角点检测的匹配算法首先,在曲率尺度空间下,检测图像在不同尺度下的角点并剔除不稳定角点;其次,基于曲率对图像轮廓描述的精确性,以特征点为中心划分3x4的子邻域,计算子邻域内轮廓曲线点的高斯加权曲率等4维向量特征,建立48维描述子,由于CSS角点检测包含曲率计算,因此生成描述子时避免了曲率的二次计算,提高了匹配速度;最后,提出一种“二进制距离”方法对描述子进行匹配,进一步优化匹配速度.通过实验证明,在保证精度的情况下,CSS快速匹配算法大幅度缩短了匹配时间,对旋转、亮度变化具有较好的匹配效果。
关键词:图像处理;图像匹配;曲率尺度空间;角点;曲率中图分类号:V271.4;TP3-05文献标志码:A doi:10.3969/j.issn.1671-637X.2019.02.006A Fast Matching Algorithm Based on CSS Corner DetectionWU Lu-shen,WAN yao,CHEN Hua-wei,HU Yun(Mechanical and Electrical Engineering Institute,Nanchang University,Nanchang330031,China) Abstract:In order to realize accurate and rapid image matching,this paper proposes a corner matching algorithm based on corner point detection and the descriptor.Firstly,in the curvature scale space,the comer points of the image at different scales are detected,and the unstable comer points are removed.Secondly, based on the accuracy of the curvature describing the contour of the image,the neighborhood is divided into 3x4sub-neighborhoods taking the character points as the center,the4-dimensional vector features in the sub・neighborhood are calculated,such as the Gaussian weighted curvature of the contour curve points,and a 48-dimensional descriptor is built.Since the CSS corner point detection includes curvature calculation,the quadratic calculation of the cunature is avoided when generating the descriptor,and thus the matching speed is improved.Finally,a binary distance method is proposed to match the descriptors to further optimize the matching speed.Experiments have proved that,with the assurance of accuracy,the CSS fast matching algorithm can shorten the matching time to a great extent and achieve satisfying matching results under rotation and illumination changes.Key words:image processing;image matching;curvature scale space;comer point;cunatureo引言在图形图像处理领域,图像匹配一直是诸多图像处理研究者的热点研究方向,广泛运用于各个领域,如工件识别'、医学图像配准"、遥感图像匹配■'、图像拼接」、3D目标识别'、人脸识别。
角点检测技术研究及进展
・40・(总212)角点检测技术研究及进展文覃编号ll003—5850(2010)03—0040-05角点检测技术研究及进展ResearchandProgressinCornerDetection朱玉艳尚振宏康燕妮来沛剑尚晋霞(昆明理工大学信息工程与自动化学院昆明650051)【摘要】角点是图像的重要局部特征,在图像配准、图像理解及模式识别等领域中,角点检测具有十分重要的意义。
对角点检测的各种方法进行了分析、比较,给出了性能评价标准。
最后,分析了该领域现存的问题、最新研究动态及发展方向。
【关键词】角点检测,特征提取,性能评价中图分类号:TP391.41文献标识码:AABSTRACTCornerisasignificantlocalfeatureofimages.Cornerdetectionhasbeenwidelyusedinmanyimageprocessingtasksincludingimageregistration.imageunderstandingandpatternrecognition.Thecornerdetectionmethodswerereviewed.categorizedandcomparedinthispaper.Theperformanceevaluationofcornerdetectionwasinvestigated.Finally.theexistingproblems.1atestresearchprogressanddevelopmenttrendswereanalyzed.KEYWORDScornerdetection,featureextraction,performanceevaluation特征提取在计算机视觉、图像处理和机器视觉中一直是一个重要方向,而角点作为图像的一个重要特征,长期以来备受研究者关注,也取得了很多研究成果。
一般认为角点是二维图像亮度变化最剧烈或图像边缘曲线上曲率值最大的像素点,能很好地被区分出来。
使用多弦长曲率多项式的角点检测算法
使用多弦长曲率多项式的角点检测算法作者:王俊青章为川王富平陈美荣来源:《计算机应用》2013年第08期摘要:在弦到点的距离累加(CPDA)技术和曲率积的基础上,提出了多弦长曲率多项式的角点检测算法。
首先利用Canny边缘检测器抽取边缘,然后对于不同弦长下边缘轮廓曲率局部极大值点,计算曲率的和;对于非极值点,计算曲率的积。
该方法不仅可以显著增强曲率极值点的峰值,而且避免了曲率积对一些角点平滑。
最后,为了降低人为设定门限带来的错检或漏检,利用局部自适应阈值去判别角点。
实验结果表明,与其他的角点检测算法相比,该方法具有很强的鲁棒性,它的平均检测准确率提高了14.5%,而且在角点数重复率准则上平均性能提高了12.6%。
关键词:弦到点距离累加;角点检测;边缘检测;自适应阈值;鲁棒性中图分类号: TP391.41文献标志码:A0 引言图像特征检测是计算机视觉和图像处理的基本问题之一。
角点作为图像上的特征点,在运动物体跟踪、图像配准和三维重建[1]等领域有重要的应用价值。
基于尺度空间的图像分析理论[2],Mokhtarian等[3]提出了基于曲率尺度空间(Curvature Scale Space,CSS)的角点检测算法,采用从高尺度到低尺度对候选角点进行跟踪并且定位角点。
该算法具有较好的检测性能,但存在三个问题:一是应用二阶导数计算曲率对曲线的局部变化或曲线上的噪声敏感;二是需选择合适的高斯尺度来平滑边缘曲线;三是要选择合适的全局阈值。
众学者为了解决上述问题,提出了许多角点检测算法[4-12]。
He等[4]提出了自适应曲率门限算法,该算法克服了CSS算法的第三个缺陷;但由于He算法是在CSS框架下求曲率,它没法解决CSS存在的第一、二个问题。
文献[5]已证明弦到点累加技术不需要刻意挑选一个高斯尺度对边缘曲线进行平滑再检测角点。
Mohammad等[6]利用弦到点距离累加理论提出了弦到点距离累加(ChordtoPoint Distance Accumulation,CPDA)检测算法,该算法利用曲率积能够增强一些角点的检测准确率,但是会把另外一些角点平滑去除;而且阈值是根据经验来选择,但在检测前并不知道输入图像的性质,以致影响了角点检测结果的准确率。
角点检测及滤波
角点检测及滤波变换1角点检测角点:曲线上曲率大的地方,一般来说这些地方法线方向不唯一。
例如:两条直线构成角时的交点。
1.1 PreCornerDetect功能:计算用于角点检测的特征图,格式:void cvPreCornerDetect( const CvArr* image, CvArr* corners, intaperture_size=3 );参数:image:输入图像.corners:保存候选角点的特征图aperture_size:Sobel 算子的核大小(见cvSobel).函数cvPreCornerDetect 计算函数D x2D yy+D y2D xx - 2D x D y D xy其中D?表示一阶图像差分,D??表示二阶图像差分。
角点被认为是函数的局部最大值:// 假设图像格式为浮点数IplImage* corners = cvCloneImage(image);IplImage* dilated_corners = cvCloneImage(image);IplImage* corner_mask = cvCreateImage( cvGetSize(image), 8, 1 ); cvPreCornerDetect( image, corners, 3 );cvDilate( corners, dilated_corners, 0, 1 );cvSubS( corners, dilated_corners, corners );cvCmpS( corners, 0, corner_mask, CV_CMP_GE );cvReleaseImage( &corners );cvReleaseImage( &dilated_corners );1.2 CornerEigenValsAndVecs功能:计算图像块的特征值和特征向量,用于角点检测格式:void cvCornerEigenValsAndVecs( const CvArr* image, CvArr* eigenvv,int block_size, int aperture_size=3 );参数:image :输入图像.eigenvv :保存结果的数组。
2019运动跟踪角点检测
不同类型的角点
什么是好的角点检测算法?
• 检测出图像中“真实的”角点 • 准确的定位性能 • 很高的重复检测率(稳定性好) • 具有对噪声的鲁棒性 • 具有较高的计算效率
算法分类 基于灰度图像的角点检测 基于梯度、基于模板、基于模板梯度组合 基于二值图像的角点检测 基于轮廓曲线的角点检测
Moravec算子对边缘响应很敏感.
角点检测
基于模板的方法 主要考虑像素领域点的灰度变化,即图像亮度的
变化,将与邻点亮度对比足够大的点定义为角点 Moravec角点检测 SUSAN角点检测算法 MIC角点检测算法 Harris角点检测算法
2 SUSAN角点检测
Smith等提出了一种全新而且直观的新方法——低层 次 图 像 处 理 小 核 值 相 似 区 方 法 ( 即 small univalue segment assimilating nucleus,简称SUSAN 算法)。
3 MIC角点检测
3 MIC角点检测
3 MIC角点检测
改进的MIC 算法
首先,利用十字模板求得四邻域的象素均值A、A’、B、B’; 然后,利用圆周插值计算角点响应函数; 最后,利用多格算法找到角点。
B Q
P
A’
αA
C
十字模版
P’ Q’
B’
圆周插值
线性插值MIC
圆周插值 十字模板 MIC
线性插值MIC (加椒盐噪声)
3ቤተ መጻሕፍቲ ባይዱMIC角点检测
最 小 亮 度 变 化 (Minimum Intensity Change,MIC),是 Trajkovic 等于2019年提出的一种快速算法。
corner-detection 角点检测
Corner Detection
8
Kanade-Lucas-Tomasi (KLT) Corner Detector
Also based on matrix C, but uses explicit calculation of eigenvalue λ2. The detector has two parameters: a threshold λt on λ2 and the edge dimension D of a square window of size D × D. KLT Corner Detector Algorithm 1. Compute C at each point (x, y ) of the image. 2. For each image point p = (x, y ) (a) Find the smallest value of λ2 in D-neighborhood of p. (b) If that λ2 > λt then put p into a list L. 3. Sort L in decreasing order of λ2 4. Scan the sorted list from top to bottom. For each current point p, delete all lower points in the list in the D-neighborhood of p.
2 = w ⊗ f2 fx x 2 = w ⊗ f2 fy y
fxfy = w ⊗ (fxfy ) Define the matrix
2 fx C= fxfy
fxfy 2 fy
The matrix C is real and symmetric. Therefore, it is positive-definite and has positive real eigenvalues.
数字图像处理角点检测方法研究—论文
数字图像角点特征检测方法研究专业:自动化班级:2009级1班姓名:***目录引言 (3)1 研究背景与发展 (6)1.1研究背景 (6)1.2研究现状和发展概述 (6)1.3应用软件M ATLAB (7)2 角点检测概念与原理 (9)2.1角点的定义 (9)2.2角点概念及特征 (9)2.3角点检测意义 (9)2.4角点检测原理 (10)2.5角点检测技术的基本方法 (10)2.5.1 基于模板的角点检测 (10)2.5.2 基于边缘的角点检测 (11)2.5.3 基于灰度变化的角点检测 (13)3 角点算法概述 (14)3.1角点检测的标准 (14)3.2H ARRIS角点检测算子 (14)3.2.1 Harris角点检测算子流程图 (19)3.2.2 Harris角点检测算子的特点 (20)3.2.3 Harris角点检测性质 (20)3.2.4 Harris和Moravec算子角点检测实验结果 (21)3.3一种改进的H ARRIS的算法 (23)3.3.1试验结果 (24)3.4S USAN角点检测算子 (25)3.3.1 SUSAN角点检测一般步骤 (27)3.3.2 Susan角点检测算子特点 (29)3.3.3 Susan角点检测试验结果 (29)4 其他算子简介 (33)4.1小波变换算子 (33)4.2F ORSTNER算子 (33)4.3CSS角点检测算法 (35)4.4ACSS角点检测算法 (36)4.5各种角点检测算法的比较 (36)结论 (39)致谢 (41)参考文献 (42)附录1 HARRIS算法程序 (44)附录2 MORA VEC算法程序 (46)附录3 改进的HARRIS算法 (48)附录4 SUSAN算法程序 (50)本文主要研究了数字图像的角点特征检测方法,应用了Matlab软件对图像进行处理。
在计算机视觉中、机器视觉和图像处理中,特征提取都是一个重要的方向。
OpenCV特征提取与检测之Shi-Tomasi角点检测器
OpenCV特征提取与检测之Shi-Tomasi⾓点检测器前⾔⾓点通常被定义为两条边的交点,或者说,⾓点的局部邻域应该具有两个不同区域的不同⽅向的边界。
⾓点检测(Corner Detection)是计算机视觉系统中获取图像特征的⼀种⽅法,⼴泛应⽤于运动检测、图像匹配、视频跟踪、三维重建和⽬标识别等,也可称为特征点检测。
⾓点检测算法的基本思想:使⽤⼀个固定窗⼝在图像上进⾏任意⽅向上的滑动,⽐较滑动前与滑动后两种情况,窗⼝中的像素灰度变化程度,如果存在任意⽅向上的滑动,都有着较⼤灰度变化,那么我们可以认为该窗⼝中存在⾓点。
⽬前,⾓点检测算法还不是⼗分完善,许多算法需要依赖⼤量的训练集和冗余数据来防⽌和减少错误的特征的出现。
对于⾓点检测算法的重要评价标准是:其对多幅图像中相同或者相似特征的检测能⼒,并且能够应对光照变化、或者图像旋转等影响。
关于⾓点的具体描述可以有⼏种:⼀阶导数(即灰度的梯度)的局部最⼤所对应的像素点;两条及两条以上边缘的交点;图像中梯度值和梯度⽅向的变化速率都很⾼的点;⾓点处的⼀阶导数最⼤,⼆阶导数为零,指⽰物体边缘变化不连续的⽅向,这篇博客将介绍另⼀个⾓点检测器:Shi-Tomasi⾓点检测器。
Shi-Tomasi⾓点检测器是Harris⾓点检测器的优化,效果更好;cv2.goodFeaturesToTrack(),通过Shi-Tomasi⽅法(或者Harris⾓点检测)在图像中找到N个最强的⾓点。
并且在跟踪对象⽅⾯性能很好。
1. 效果图原图 VS Harris⾓点检测器效果如下:原图 VS Shi-Tomasi⾓点检测效果图如下:可以看出Shi-Tomasi确实效果要好⼀些,所有⾓点均被成功检测;2. 源码# Shi-Tomasi⾓点检测是Harris⾓点检测的优化,更准确,会检测出N个最强⾓点;import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('images/polygon.jpg')plt.subplot(1, 2, 1)plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))plt.xticks([])plt.yticks([])plt.title("origin")gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)corners = cv2.goodFeaturesToTrack(gray, 25, 0.01, 10)corners = np.int0(corners)for i in corners:x, y = i.ravel()cv2.circle(img, (x, y), 3, 255, -1)plt.subplot(1,2,2)plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))plt.xticks([])plt.yticks([])plt.title("Shi-Tomasi res")plt.show()总结到此这篇关于OpenCV特征提取与检测之Shi-Tomasi⾓点检测器的⽂章就介绍到这了,更多相关OpenCV Shi-Tomasi⾓点检测器内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
3.FAST角点检测
3.FAST角点检测from /s/blog_96b836170102w1kk.html3.FAST角点检测本博文原理部分简述,重点在编程实现(程序参考并修改了网上资料,网上程序不一定能运行,但本文程序亲测能跑)。
基于加速分割测试的FAST算法可以快速地提取出角点特征。
该算法判断一个候选点p是否为角点,依据的是在一个像素点p为圆心,半径为3个像素的离散化Bresenllam圆周上,在给定阈值t的条件下,如果在圆周上有n个连续的像素灰度值大于I(p)+t或小于I(p)-t。
控制FAST角点的主要参数是阈值t,输入t以进行角点检测。
//FAST:#include "stdafx.h"#include#include#include#include "opencv2/opencv.hpp"#include "opencv2/core/core.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/features2d/features2d.hpp"#include#include#include#includeusing namespace cv;using namespace std;int main(int argc, char** argv){Matsrc, gray;src = imread("C:\\Users\\Administrator\\Desktop\\qi.jpg");if(!src.data)return -1;//彩色图像转换为灰度图像cvtColor(src, gray, CV_BGR2GRAY);//定义特征点KeyPoint向量std::vector<</span>KeyPoint> keyPoints;//调用FAST函数,阈值选为55FAST(gray, keyPoints, 55);inttotal = keyPoints.size();//在原图上画出特征点for(int i = 0; i < total; i++){circle(src, Point((int)keyPoints[i].pt.x, (int)keyPoints[i].pt.y), 5, Scalar(0, 0, 255), -1, 8, 0);}namedWindow("FAST", CV_WINDOW_AUTOSIZE);imshow("FAST", src);waitKey(0);return0;}FAST算法比其他已知的角点检测法要快很多倍,但是当图片的噪点较多时,它的健壮性并不好,这依靠一个阈值:当阈值过小时,检测出的角点过多;整体的阈值对于图像局部不一定合适。
角点和边缘检测_计算机视觉教程(第2版)_[共3页]
图 4.2.3 函数 C(.;.)示例
S ( x0 , y0 ) = ∑ C ( x0 , y0 ; x, y) ( x , y )∈M ( x , y )
(4.2.2)
这个总和其实就是 USAN 区域中的像素个数,或者说它给出了 USAN 区的面积。如前面所讨
即与核有相同值的区域。USAN 区包含了很多与图像结构有关的信息。利用这种区域的尺寸、重
心等统计量可以帮助检测图像中的边缘和角点。从图 4.2.1 可见,当核像素处在图像中的灰度一致
区域时,USAN 区的面积会超过一半,第 1 个模板和第 5 个模板以及第 2 个模板和第 4 个模板都
属于这种情况。当核处在直边缘处 USAN 的面积约为最大值的一半,第 3 个模板就属于这种情况。
第 4 章 基元检测
域,第 5 个模板全部在暗区域,第 6 个模板的 1/4
在暗区域。
如果将模板中各个像素的灰度都与模板中心
的核像素的灰度进行比较,那么就会发现总有一
部分模板区域像素的灰度与核像素的灰度相同或 相似。这部分区域可称为核同值区(USAN 区),
图 4.2.1 圆形模板在图像中的不同位置
通过计算极大值方便地确定出角点的位置。效果。基于 USAN 区面积的检测方式与其他常用的检测方式有许多不同之处,最明显的就是不需
要计算微分,因而对噪声不是很敏感。
4.2.2 角点和边缘检测
在 USAN 区的基础上可讨论 SUSAN 算子(即最小核同值算子),并进行角点和边缘检测。 1.角点检测 在数字图像中,圆形模板可用图 4.2.2 所示的 37 个像素来近似。 这 37 个像素排成 7 行,每行分别有 3,5,7,7,7,5,3 个像素。 这相当于一个半径约为 3.4 个像素的圆。如考虑到计算量,也有用 普通的 3 × 3 模板来粗略近似的。 设模板函数为 M(x, y),将其依次放在图像中每个点的位置,在 每个位置,将模板内每个像素的灰度值与核的灰度值进行比较: 图 4.2.2 37 个像素的圆形模板
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
曲线曲率的定义
• 尺度为 的曲线 曲率定义: ,
其中:
曲率尺度空间图像
令二维函数
得到曲线的曲率尺度空间图像 (Curvature Scale Space Image)
非洲曲线的CSS图像 图像 非洲曲线的
曲率尺度空间图像对噪声的鲁棒性
叠加了形状噪声的非洲轮廓
原始CSS图像和有噪声的CSS图像叠加显示
– 添补边缘轮廓上的间隙 – 找到边缘轮廓的T形交点并记之为T形角点
Canny边缘检测容易造成边缘轮廓的间隙
CSS角点检测与跟踪
• 在最高的尺度上计算边缘轮廓的曲率绝对值,并 选择局部极大值点作为角 – (2)至少两倍于两侧相邻的某个曲率极小值点
曲率尺度的演化
• 将曲线用弧长参数u表达为 • 曲线随着尺度变化的演化形式表达为: 其中: X,Y分别为曲线上的点的横、纵坐标, X,Y都是u的一维函数,g为一维高斯函数, g的参数 代表了曲线的尺度
对曲线的横、纵坐标分别进行高斯滤波~!
当 由小变大时, 曲线的尺度从细向 粗演化。
非洲曲线 尺度从细向粗的演化
• CSS角点检测的思想:
–在粗糙尺度上检测角点,在尺度空间中向精细 尺度跟踪这个角点
F. Mokhtarian and R. Suomela, Robust Image Corner Detection Trough Curvature Scale Space, TPAMI, Vol. 20, No. 12, 1998.
Research Scientist at NTT Basic Research Lab,Tokyo,Japan.
CSS角点检测 (CSS: Curvature Scale Space)
• CSS角点定义:边缘轮廓上的曲率极大值点
–细节尺度上(Fine Scale): 定位性好,噪声多 –粗糙尺度上(Coarse Sclae):定位性差,噪声少
CSS角点检测 (CSS: Curvature Scale Space)
F. Mokhtarian and R. Suomela, Robust Image Corner Detection Trough Curvature Scale Space, TPAMI, Vol. 20, No. 12, 1998.
Nikom Suvonvorn, Feature detection: point of interest, Prince of Sopakhla University.
• 跟踪角点到最低(细)的尺度上以获得更好的位 置精度:
– 对于在高尺度上检测到的极大值点,在其低一级尺度 的邻域搜索极大值点 – 如此,向更低的尺度进行跟踪,直到最低的尺度
去除重复标记的角点
• 将上述CSS角点和T形角点做比较,去掉非常邻近的点
两种方法得到的角点:Canny连接得到的T角点,CSS跟踪得到的角点 策略:如果两者邻近,去掉T角点
(a)Plessey (b)Kitchen/Rosenfeld (c)SUSAN (d)CSS
(a)Plessey (b)Kitchen/Rosenfeld (c)SUSAN (d)CSS
(a)Plessey (b)Kitchen/Rosenfeld (c)SUSAN (d)CSS
角点检测算法性能的比较
CSS角点检测的步骤
原始图像 Canny边缘提取 从Canny边缘图上提取边缘轮廓 填补轮廓间隙 寻找轮廓上的T形角点 跟踪角点到最低的尺度 以获得更好的位置精度 在最高尺度上计算曲率 并确定角点的候选点 (绝对曲率的极大值点)
若邻近,去除T形角点
填补间隙并提取T形角点
• 使用Canny方法从原始图像中检测边缘 • 从Canny边缘图像上提取边缘轮廓