特征点识别(Breakpoint/Dominant-points Classsification)——AKC函数的分析与实现
2012-11-18 20:43
204 查看
摘要:本文所述算法来自IEEE PAMI的文章"Multiprimitive Segmenatation of Planar Curves-A Two-Level Breakpoint Classification and Tuning Approach"。大家可以到百度文库:http://wenku.baidu.com/view/e01f28f10242a8956bece43f.html?st=1下载。如果没有文库号的,可以到新浪爱问:http://ishare.iask.sina.com.cn/f/34715669.html免费下载。本文算法程序均系作者原创,欢迎各位研究指正。如需转载,请注明出处。
一、AKC函数介绍
首先把特征点分为两类,一类角点(corners),一类平滑结点(Smooth joints)。(注意:论文中把特征点称为Breakpoints断点,两者是同一概念。如果宽泛的将,有时我们也把特征点或者断点统称为角点)。其中角点类表明其两侧具有不连续的切线。其中平滑结点类表明其两侧具有不连续的曲率。如图1图2。
View Code
其中Link kPriorPoint(Link &p, int k);和Link kNextPoint(Link &p, int k);函数为寻找当前节点的前面k个结点,和后面k个结点。
三、实验结果
对下图进行操作。
![](http://pic002.cnblogs.com/images/2012/370714/2012111820254045.png)
![](http://pic002.cnblogs.com/images/2012/370714/2012111820264691.png)
![](http://pic002.cnblogs.com/images/2012/370714/2012111820272615.png)
上图的角点(正坐标在前,纵坐标在后)49 75;49 100;65 117;156 119;156 56;72 56;共6个角点。那么使用AKC函数后,结果如何?先看看每一点的AKC函数图,从72 56点开始,逆时钟转依次显示每一点的AKC,共6幅图。
![](http://pic002.cnblogs.com/images/2012/370714/2012111820324216.png)
![](http://pic002.cnblogs.com/images/2012/370714/2012111820325735.png)
![](http://pic002.cnblogs.com/images/2012/370714/2012111820331263.png)
![](http://pic002.cnblogs.com/images/2012/370714/2012111820332535.png)
![](http://pic002.cnblogs.com/images/2012/370714/2012111820334094.png)
![](http://pic002.cnblogs.com/images/2012/370714/2012111820334952.png)
从图中可以清晰看出最后两幅图对应为角点,其余为smooth点。
四、结束语
其实AKC函数是为后面的PHF函数做准备的,因此本文没有列举大量的实例。后面的PHF函数将会有更直观的分类感受。写博客真不是件轻松的事情啊,图片还得一张张传,字还得慢慢敲......好不容易写了篇,加油吧!
一、AKC函数介绍
首先把特征点分为两类,一类角点(corners),一类平滑结点(Smooth joints)。(注意:论文中把特征点称为Breakpoints断点,两者是同一概念。如果宽泛的将,有时我们也把特征点或者断点统称为角点)。其中角点类表明其两侧具有不连续的切线。其中平滑结点类表明其两侧具有不连续的曲率。如图1图2。
View Code
double* AKC(Link &p, int kb) { // AKC函数 int i=0; Link PJ = kPriorPoint(p, kb); // PJ is Pj Pj∈(p-k, p+k) Link PJN = NULL; // PJN is Pj-, Pj-=Pj-k Link PJP = NULL; // PJP is Pj+, Pj+=Pj+k int ajx, ajy, bjx, bjy; int tk=2*kb; double *c = new double [tk+1]; while(i<=tk) { PJN = kPriorPoint(PJ, kb); PJP = kNextPoint(PJ, kb); ajx = PJP->x-PJ->x; ajy = PJP->y-PJ->y; bjx = PJN->x-PJ->x; bjy = PJN->y-PJ->y; c[i] = (ajx*bjx+ajy*bjy)/(sqrt(ajx*ajx+ajy*ajy)*sqrt(bjx*bjx+bjy*bjy)); PJ = PJ->next; if (PJ->csp[0] == 0) { PJ=PJ->next; } i++; } return c; }
其中Link kPriorPoint(Link &p, int k);和Link kNextPoint(Link &p, int k);函数为寻找当前节点的前面k个结点,和后面k个结点。
三、实验结果
对下图进行操作。
![](http://pic002.cnblogs.com/images/2012/370714/2012111820254045.png)
![](http://pic002.cnblogs.com/images/2012/370714/2012111820264691.png)
![](http://pic002.cnblogs.com/images/2012/370714/2012111820272615.png)
上图的角点(正坐标在前,纵坐标在后)49 75;49 100;65 117;156 119;156 56;72 56;共6个角点。那么使用AKC函数后,结果如何?先看看每一点的AKC函数图,从72 56点开始,逆时钟转依次显示每一点的AKC,共6幅图。
![](http://pic002.cnblogs.com/images/2012/370714/2012111820324216.png)
![](http://pic002.cnblogs.com/images/2012/370714/2012111820325735.png)
![](http://pic002.cnblogs.com/images/2012/370714/2012111820331263.png)
![](http://pic002.cnblogs.com/images/2012/370714/2012111820332535.png)
![](http://pic002.cnblogs.com/images/2012/370714/2012111820334094.png)
![](http://pic002.cnblogs.com/images/2012/370714/2012111820334952.png)
从图中可以清晰看出最后两幅图对应为角点,其余为smooth点。
四、结束语
其实AKC函数是为后面的PHF函数做准备的,因此本文没有列举大量的实例。后面的PHF函数将会有更直观的分类感受。写博客真不是件轻松的事情啊,图片还得一张张传,字还得慢慢敲......好不容易写了篇,加油吧!
相关文章推荐
- [转] 三种强大的物体识别算法——SIFT/SURF、haar特征、广义hough变换的特性对比分析
- 主成分分析 (PCA) 与其高维度下python实现(简单人脸识别)
- Berkeley DB 源代码分析 (1) --- 代码特征与游标的实现
- AdaBoost中利用Haar特征进行人脸识别算法分析与总结
- 三种强大的物体识别算法——SIFT/SURF、haar特征、广义hough变换的特性对比分析
- 基于模糊特征的文字识别+实现代码
- 三种强大的物体识别算法——SIFT/SURF、haar特征、广义hough变换的特性对比分析
- 人脸识别特征提取(LBP)及其opencv实现
- AdaBoost中利用Haar特征进行人脸识别算法分析与总结2——级联分类器与检测过程 .
- AdaBoost中利用Haar特征进行人脸识别算法分析与总结1——Haar特征与积分图
- SIFT算法原理与OpenCV源码分析6:OpenCV实现SIFT算法,特征检测器FeatureDetector
- AdaBoost中利用Haar特征进行人脸识别算法分析与总结1——Haar特征与积分图
- 三种强大的物体识别算法——SIFT/SURF、haar特征、广义hough变换的特性对比分析
- Berkeley DB 源代码分析 (1) --- 代码特征与游标的实现
- 【机器学习PAI实践十二】机器学习实现男女声音识别分类(含语音特征提取数据和代码)
- AdaBoost中利用Haar特征进行人脸识别算法分析与总结(转载)
- 三种强大的物体识别算法——SIFT/SURF、haar特征、广义hough变换的特性对比分析
- [转帖]三种强大的物体识别算法——SIFT/SURF、haar特征、广义hough变换的特性对比分析
- -写霸-Android 实现字体识别(一)原理分析