亚像素级角点定位算法

上篇文章,已对点和边缘两种情形的亚像素定位算法做了详细描述。因图像特征不同,亚像素定位算法也会不同,我们可以根据图像的具体特征,进行数学建模以达到定位目的。这里另起一篇说明角点情形的亚像素定位问题。


1. 角点几何特征


角点位置特征:边缘的交点,且角点与边缘点的连线和边缘点的梯度方向垂直。

如上图所示,假设一个起始角点q在实际亚像素角点附近。p点在q点附近的邻域中,若p点在均匀区域内部,则p点的梯度为0;若p点在边缘上,则p点的梯度方向垂直边缘方向。如果向量q-p方向与边缘方向一致,那么q-p向量与p点的梯度向量点积运算结果为0。在初始角点(初始角点可能不在边缘上)附近我们可以收集很多组点的梯度以及相关向量q-p,此时的q就是我们所要求的更精确角点位置,那么每一组的向量点积设置为0,正是基于这个思想,将点积为0的等式组合起来形成一个系统方程,该系统方程的解就是更精确的亚像素角点位置。 

注:这里说明下,在求解亚像素角点位置,并不是求解方程组的解,而是求解系统方程的解,因为方程组可能是无解的。

2. 计算公式推导

基于上述方案,实践证明是可以获取高精度的亚像素级角点位置信息,算法采用反复迭代思想,最终获取角点的亚像素级的位置,下面着重推导下求解亚像素位置的最终数学公式。

【1】根据最终表达式,为了推导而推导

亚像素角点定位的实现是基于对向量正交性的观测而实现的,即从中央点q到其领域点p的向量和p点处的图像梯度正交,有以下表达式:

其中{DI_{p_i}}表示在q的一个邻域点p_i处的图像梯度,基于上述方案可知q的值通过最小化εi得到。设置εi为0后,两边同乘以{DI_{p_i}},就可以得到关于该邻域点的一个等式。对所有邻域点均进行这样变换,等式左右分别相加,即可的下面等式:


设定G = ,b = 最终可以求解q = G^{-1}  \cdot b

这种推导其实是不合理的,勉强也能出现最终的计算公式。那么最终为什么要以矩阵的形式进行计算呢?

【2】更具有直观物理意义上的推导

我们再求解一个线性方程组时,常常会出现线性方程组无解情形,遇到这种情况,我们只能求取近似解,对于方程组AX=b而言,A是方程组的系数矩阵,b是方程组右边的常量构成的向量。对于无解情况,我们可以知道向量b并不在矩阵A所构成的列空间里,即列空间的任意向量组合都不能构成b向量。那么该如何求解呢,我们需要将向量b投影至A列空间中,这样我们就可以求取最佳近似解。具体过程大家可以自己推导下。推导的最终结果也就出现上述的最终表达式。

3. 亚像素角点定位算法步骤

>利用初始角点位置以及窗口大小计算窗口邻域中所有点在图像坐标系中的位置信息以及灰度信息;

>根据邻域点在图像中的位置信息计算邻域点的梯度信息;

>利用邻域点的位置信息(这个位置信息相对窗口而言)以及梯度信息,结合上面推导公式计算角点的更准确位置q;

>反复迭代,直到满足迭代终止条件,此时求得的q为最终角点亚像素位置;

4. 源码剖析

>邻域点位置以及灰度计算。窗口大小固定,只要初始角点位置确定,那么邻域点的位置随即确定,既然像素位置已确定,当然此时的位置信息可能是浮点型的,那么就要计算浮点型位置所对应的灰度,算法中使用的是双线性插值。

计算双线性插值系数:


插值计算邻域点的灰度值:


>邻域点的梯度计算

>角点亚像素位置计算。

计算矩阵G和向量b,矩阵G中含[a,b;a,c],向量b为[bb1,bb2],代码如下所示:


由于G和b均已求出,再求出G的逆矩阵,结合上面推导公式可以计算亚像素位置q。



5. 小结

正交性可以说是角点特征图像的一种数学描述。实际我们在图像处理时,一般用数学模型来表达图像特征,也许就不存在一个数学模型完美表达图像的特征,我们希望构造的数学模型能够接近表达图像特征。角点亚像素定位是基于向量的正交性实现的,对于平坦区域以及边缘上的点均符合,但这都属于假设理想情况。对于一般图像而言,也许邻域中的点存在噪声、抑或所谓平坦区域中的点并不平坦,它们含有非0的梯度,然而该算法,都视这些点具有正交特征,这样计算出亚像素角点位置的精度到底如何?

欢迎大家讨论!!!





  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值