快速平面旋转算法?


4

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

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

3

你实际上并不需要处理在这种情况下,3D信息,它只是一个mappping功能,从一组坐标到另一个。

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

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


2

其实,我认为你可以用比Mark's approach简单得多的东西逃脱。

  1. 一旦在倾斜图像上有二维坐标,重新将这些坐标作为纹理坐标。

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

现在你可以依靠硬件(使用OpenGL或类似)为你做的修正,或者你可以写你自己的纹理映射:

长宽比将需要在因为我们猜测正在处理实际的3D信息。但是,只需采用倾斜矩形的最大宽度和最大高度即可摆脱困境。

Perspective Texture Mapping by Chris Hecker