【发布时间】:2015-08-19 04:31:11
【问题描述】:
据我所知,计算机视觉中的 Homography(投影变换)可用于检测图像中的对象,但我见过的所有示例都是在平面对象上。 Homography 是否仅适用于 planar surface 对象?或者它可以检测到任何类型的objects?我问是因为我试图找到下面的对象(它是一个非平面表面对象)但没有成功:
在这个link,你可以看到代码。我使用它只是更新图像的名称,所以我们正在做的事情如下:
- 使用 SURF 从 2 张图像中获取关键点
- 使用 SURF 描述符描述关键点
- 尝试匹配两张图片之间的关键点
- 使用匹配的关键点列表计算单应矩阵。
- 获取对象角点的坐标。
- 应用 perspectiveTransform 来获取它们在场景图像中的对应关系
- 在结果点之间画线。
请注意,图中大圆圈内画的绿线是代表结果点的线。
根据我上面展示的内容,在我看来,我对 Homography 的理解以及它可以应用的地方有一些不清楚的地方,因为这种例子很简单,但它不起作用。我目前正在研究 OpenCV 代码以准确了解他们如何估计它,但进展并不快。那么,有没有人知道 OpenCV 如何计算这种转换?或者任何可以帮助解决这种情况的参考资料?
已编辑: 这是另一个例子:
我将单应性应用于对象和仅包含我需要的仪器的黄色框。结果甚至更糟,因为现在它以某种方式成为了一个点,正如您在被红色圆圈包围的绿色点中看到的那样。 此外,我无法为场景中的对象拍摄图像,因为我有很多视频,所以我正在为每个仪器拍摄单独的图像并尝试在场景视频中找到它们。
【问题讨论】:
标签: opencv object-detection homography