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(最好一个参数是以度数为单位的角的大小)。
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(最好一个参数是以度数为单位的角的大小)。
相关文章推荐
- 做个网站玩玩-青集社区的诞生
- linux防火墙iptables详细教程
- linux命令二:chgrp
- linux指令一chown
- CDNPlus的节点和管理中心
- Mysql bash: mysql: command not found
- 大访问量网站架构设计
- OpenGL光照和颜色
- CDNPlus的作用和架构
- CentOS6.x升级MySQL版本5.1到5.6
- Linux账号管理与ACL权限设置
- ubuntu14.04下配置使用openCV3.0
- 一例千万级pv高性能高并发网站架构
- 获得Properties文件的内容
- linux设备模型 底层
- 【解决】 CentOS6.6安装Cloudera Manager5.4的问题
- 初学linux
- linux设备模型 上层
- 生产服务器环境最小化安装后 Centos 6.5优化配置备忘
- Apache Tika