检测亚像素级角点
2015-11-07 21:17
225 查看
用cornerSubPix()函数将角点定位到子像素,从而取得亚像素级别的角点检测效果。
寻找更精确的角点位置 (不是整数类型的位置,而是更精确的浮点类型位置).
如何将求得的坐标值精确到亚像素级精度?
方法就是向量的点积理论:一个向量和其正交的向量的点积为0,角点我们之前有说过了,就是两个边缘的相交,可以满足这样的情况。
当要求的点P位于一个区域的内部时,点p边缘是平缓的,它的梯度值为0,此时向量 q-p 的与p的梯度点积为0,;
当点p位于区域的边缘的时候,向量q-p 与区域平行,而p的梯度值则与边缘垂直,此时向量 的与p的梯度点积为0。
这两种情况下,向量 与P点的梯度都是正交的。先假设起始角点q在实际亚像素级角点p附近,则我们可以在要求的p点的周围取到很多p点的梯度和相关向量 令其点积为0,然后就可以通过求解方程组,方程组的解就是角点q的亚像素精度的位置,也就是精确角点的位置。
对于棋盘格图像如图1所示,角点附近的点可分为在边缘上的点和不在边缘上的点两类。B点上的梯度方向与OB垂直,A点处灰度梯度为0,。
文献:
寻找更精确的角点位置 (不是整数类型的位置,而是更精确的浮点类型位置).
如何将求得的坐标值精确到亚像素级精度?
方法就是向量的点积理论:一个向量和其正交的向量的点积为0,角点我们之前有说过了,就是两个边缘的相交,可以满足这样的情况。
当要求的点P位于一个区域的内部时,点p边缘是平缓的,它的梯度值为0,此时向量 q-p 的与p的梯度点积为0,;
当点p位于区域的边缘的时候,向量q-p 与区域平行,而p的梯度值则与边缘垂直,此时向量 的与p的梯度点积为0。
这两种情况下,向量 与P点的梯度都是正交的。先假设起始角点q在实际亚像素级角点p附近,则我们可以在要求的p点的周围取到很多p点的梯度和相关向量 令其点积为0,然后就可以通过求解方程组,方程组的解就是角点q的亚像素精度的位置,也就是精确角点的位置。
对于棋盘格图像如图1所示,角点附近的点可分为在边缘上的点和不在边缘上的点两类。B点上的梯度方向与OB垂直,A点处灰度梯度为0,。
文献:
相关文章推荐
- C语言中,注释不能嵌套
- 架构设计最佳实践与必备素养
- 111 js iframe表单提交后自动关闭 &
- java编程,格式化数字小数位
- 加密解密算法以及对应.Net实现
- 自己做的demo--关于HashMap
- [ecshop调试]ecshop 数据库查询缓存详解 有三种缓存,query_cache(数据库查询缓存)、static_cache(静态缓存)和cache(普通的缓存)
- C库函数
- 去掉 UITableView 顶部的多余空间
- nginx服务器的网站权限问题
- [POJ1679]The Unique MST 次小生成树
- VMware下linux机联网配置
- 怎样用cmd运行exe控制台程序
- List(列表)
- 【Linux程序设计】之环境系统函数综合实验
- python之函数用法__getitem__()
- 将单链表H逆置
- ACM程序设计,找出可疑串,并删除可疑串,用C++实现
- Qt在Windows下的三种编程环境搭建
- A*算法解决八数码(九宫重排)问题