您的位置:首页 > 运维架构

opnecv扫描轮廓寻找关键点cvFindDominantPoints的运用

2015-06-16 10:36 253 查看
前面讲过怎么运用有效的参数去多边形逼近轮廓,使得轮廓逼近的效果更好,更加接近实际图像。现在是实现如何寻找轮廓上面的关键点。我们知道,曲线逼近的过程和寻找关键点的过程密切相关。跟曲线上的其他点相比,关键点是那些包含曲线信息比较多的点。关键点在逼近算法以及其他应用中都会涉及。函数cvFindDominantPoints实现了这一功能。

1)cvFindDominantPoints:寻找轮廓的关键点

CvSeq* cvFindDominantPoints(

CvSeq* contour,

CvMemStorage* storage,

int method=CV_DOMINANT_IPAN,

double parameters1=0,

double parameters2=0,

double parameters3=0,

double parameters4=0//参数分别为最短距离,最长距离,相邻距离,最大角度

);



IPAN算法通过扫描轮廓上并在曲线内部使用可能顶点构造三角形来实现。对于三角形的大小和张角有特殊要求,在比某一特定的全局阈值和它的相邻点的张角小的情况下,具有大张角的点被保留。

如图,算法首先把所有两边距离rpa和rpb在dmin和dmax之间,theta ab<theta max的三角形找出了。然后保留对于距离dn(dn的大小不得超过dmax)有最小夹角theta ab的所有点p。dmin,dmax,dn,和theta的典型值可以是7,9,9,150(最好一个参数是以度数为单位的角的大小)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: