我正在开发一个应用程序来检测图像中最突出的矩形,然后试图旋转它以使矩形的左下角位于原点,类似于IUPR的 OSCAR 系统正常运行。然而,一旦检测到最突出的矩形,我不确定如何考虑深度分量或z轴,因为矩形不总是“正面”。我将非常感谢任何进一步理解的例子。下面是IUPR OSCAR系统的一个例子。

alt文本http://quito.informatik.uni-kl.de/oscar/oscar.php?serverimage=img_0324.jpg&montage=use

有帮助吗?

解决方案

在这种情况下,您实际上不需要处理3D信息,它只是一个映射函数,从一组坐标到另一组坐标。

看看仿射变换,它们能够纠正简单的倾斜和透视效果。您应该能够在某处找到可以从矩形角上的4个点计算变换的代码。

几乎忘了 - 如果“快”的话非常重要,您可以将系统简化为仅使用简单的剪切变换组合,但这会对高度倾斜的主体的图像质量产生不良影响。

其他提示

实际上,我认为你可以通过比 Mark的方法更简单的方法来逃避

  1. 在倾斜图像上获得2D坐标后,将这些坐标重新用作纹理坐标。

  2. 在渲染器中,绘制一个简单的矩形,其中每个角的顶点都纹理映射到在倾斜的2D图像上找到的顶点(标准化并以其他方式转换为渲染系统的纹理坐标平面)。

  3. 现在您可以依靠硬件(使用OpenGL或类似工具)为您进行校正,或者您可以编写自己的纹理映射器:

    由于我们正在处理实际的3D信息,因此需要猜测宽高比。但是,只需获取倾斜矩形的最大宽度和最大高度即可。

    Chris Hecker的透视纹理贴图

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top