5

我正在开发一个应用程序,它检测图像中最突出的矩形,然后试图旋转它,使矩形的左下角位于原点,类似于 IUPR 的OSCAR系统的工作方式。但是,一旦检测到最突出的矩形,我不确定如何考虑深度分量或 z 轴,因为矩形并不总是“正面”。任何能加深我理解的例子都将不胜感激。下面是 IUPR 的 OSCAR 系统的一个示例。

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

4

2 回答 2

3

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

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

差点忘了——如果“快速”真的很重要,您可以简化系统以仅组合使用简单的剪切变换,尽管这会对高度倾斜的对象的图像质量产生不良影响。

于 2008-09-23T18:43:14.667 回答
2

实际上,我认为您可以使用比Mark 的方法简单得多的方法

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

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

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

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

Chris Hecker 的透视纹理映射

于 2008-09-23T18:59:10.027 回答