zoukankan      html  css  js  c++  java
  • 亚像素角点

        Harris 角点定义为一个邻域内存在两个正交方向上梯度变化较大的点。

        作 xy 平面上的二维函数,使用自相关函数可描述图像上一固定点在任意方向上的灰度变化;然后利用泰勒级数展开自相关函数,即可将其转换为矩阵特征值问题(参考博文 "光流跟踪")。

        在某些应用中(如视觉测量),想获得更加精确的角点定位,可使用角点亚像素算法实现。

        在提取亚像素边缘时,可以通过数学建模(最小二乘法)来描述边缘方向上一阶导数曲线,该曲线为一个二次函数;然后找到数学模型的最值点即为亚像素边缘位置。

        对于 Harris 角点,考察 角点邻域内点 p 的梯度向量,p点与初始角点 q 构成的向量 ,在理想情况下,发现两向量点积均为 0。具体来说:

        1)当 p 点位于平坦区域内,p 的梯度向量为 0,两向量点积为 0;

        2)当 p 点位于边缘上,p 的梯度向量于向量 qp 正交,两向量点积仍然为 0。

             

        如上图所示,将 q 点坐标当作未知量,通过解方程组即可求得更加精确的角点坐标。一旦求解到新的角点坐标,可以使用新的角点坐标位起点,按同样方法建立方程组,迭代求解,直到精度满足要求。

        在实际应用中,当考察点离参考角点 q 较近时,角点附近点存在两个方向梯度,故合成梯度方向与 qp 边缘基本不能正交;

        当考察点离参考角点 q 较远时,考察点多半位于边缘上,故考察点梯度方向与 qp 边缘基本正交;

        所以,实际应用中会排除离 p 点较近的部分点,以提升线性方程组可解性。

        另一方面,在平坦区域内点的梯度一般不等于 0,这会提升方程组真实解。可以设定一个梯度门限,方程组仅接收梯度门限较大值,从而提升可解性。

        参考资料 Learning OpenCV 3

  • 相关阅读:
    分享关于Entity Framework 进行CRUD操作实验的结果
    总结Unity IOC容器通过配置实现类型映射的几种基本使用方法
    Python深入:Distutils发布Python模块--转载
    原创:R包制作--windows
    提高R语言速度--转载
    R 语言 Windows 环境 安装与Windows下制作R的package--Rtools
    极简 R 包建立方法--转载
    R的极客理想系列文章--转载
    如何创建R包并将其发布在 CRAN / GitHub 上--转载
    教你如何成为数据科学家(六)
  • 原文地址:https://www.cnblogs.com/luofeiju/p/12667625.html
Copyright © 2011-2022 走看看