在图像上找到兴趣点

时间:2015-04-14 20:30:36

标签: c++ opencv image-processing

我试图跟踪边桌上的小白点。在大多数情况下它都有效。我正在使用本教程中使用的cornerHarris函数:http://docs.opencv.org/doc/tutorials/features2d/trackingmotion/harris_detector/harris_detector.html。 有时,我遇到了一个问题:边缘光线的反射会产生我不得不考虑的兴趣点。 例如 : enter image description here 我正在搜索顶角的两个最近点,正如你在右边看到的那样,我找到了点(红点和绿点),在左边缘,光噪声是一个问题(青色和蓝色)点)。

有人知道在我的照片上只保留点白色的方法吗?谢谢你,对不起我的英文

1 个答案:

答案 0 :(得分:1)

在纯粹的图像处理部分,我建议使用某种形状特征分析(比如将当前检查的兴趣点周围的直方图比较为8x8与您想要的预先计算的功能相比较

这意味着您首先要查找具有Harris角点的点,然后比较这些特征以消除不需要的点(8x8中的欧几里德距离= 64D?)。这当然假设存在强大的特征(阅读"花时间找到一个好的特征") 它还假设您事先知道您的特征点是什么样的。

在计算机视觉方面可以选择更多:使用角点的几何形状重新划分你的优势:你可能想要一个扭曲的矩形,所以一定要找到一个!当然,您可以计算一个函数,该函数假设最后一个特征点的有效性假设其他3个? (由其他3个点产生的2条线的交点距离......)

典型和最酷的方法然后将RANSAC应用于它:尝试随机(但不是全部!)组合你的点并使用该函数检查哪一个最合适,并认为这些是好的。

如果您打算随着时间的推移或多个图像进行跟踪,您将不得不稍微调整一下,因为ransac偶尔会失败(随机组合的统计数据......),然后您将使用之前成功运行的点数猜测这个位置。

目前最后的想法:使用一些颜色感知的派生技术:你是计算rgb图像的哈里斯角还是扁平版的灰色?一些渐变使用颜色信息作为识别边缘的额外提示,并且我不确定您发现的角落是否使用任何这些。然后它可能意味着重新实现哈里斯角落算法(尝试它,它很有趣,如果你有一个好的代数库来做繁重的工作,那就不那么难了)

我建议使用拟合的几何测试,因为它明智地使用了系统的模型信息,而不是假设反射的样子。

RANSAC非常有趣的介绍:danielwedge.com/ransac /

编辑:Trusty photoshop知道我的意思:我突出了无效的形状

Valid grid, photoshop says so

Invalid grid, logical, right ?