3

我编写了一个应用程序来检测图像中的正方形。为了让您更好地理解包含这样一个正方形(在本例中为标记)的图像如何看起来像:

检测后,我得到的是我的标记四个角的坐标。现在我不知道如何在我的标记上显示一个对象。对象应与标记具有相同的旋转/角度/方向。

是否有任何关于如何实现这一目标的论文,我可以使用的任何算法证明是非常可靠/有效的?

它不需要是一个可行的解决方案,它可以是一个关于如何实现它或类似的简单描述。如果您将我指向图书馆或其他东西,它应该可以在 linux 下运行,不需要 windows,但如果我需要在某个时候移植应用程序会很好。我已经看过 ARToolkit,但它们是相机参数文件和更复杂的矩阵,而我只得到了四个角点和一个图像,而不是整个视频/相机流。

4

2 回答 2

1

我相信您可以使用 OpenCVcvGetPerspectiveTransform找到可以将正方形扭曲到标记角的变换,然后cvWarpPerspective扭曲图像。

于 2011-01-08T19:05:12.013 回答
0

这是一个正方形。它应该放在一个正常的平面上,我们需要找到它,因为这是我们应该放置对象的方式。我们可以假设所有 y 坐标都是 0,现在我们正在处理方面问题。也许我们可以从将其映射到 0-1 范围开始。最左边的点在 x 上为 0,最右边为 1,z 上也是如此——最近的 0 和最远的 1。我们可以通过检查对角线的长度来确定这一点。较短的一个连接前后点,接下来是另一个 2. 所以我们得到类似的东西

       x z
left:  0 ?
right: 1 ?
front: ? 0
back:  ? 1

我想这些?可以通过边的方面来计算。使用正方形可以简化问题。如果连接前后左右的 2 条线相同,则左右的 z 值为 0.5 。好吧,通过这种方式,您可以获得所有 3 个维度并使用向量叉积计算法线。然后,您可以将您的模型以 y 轴作为高度,计算矩阵用于将 0,1,0 向量旋转为您得到的法线,然后绘制位置 2D 图像并正确缩放它。好吧,我不知道我是否对您有所帮助,也许这不是它的工作方式,但我希望我写了一些有用的东西。

于 2011-01-08T18:26:59.300 回答