【问题标题】:Fast plane rotation algorithm?快速平面旋转算法?
【发布时间】:2010-09-12 11:32:06
【问题描述】:

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

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

【问题讨论】:

    标签: c++ c geometry rotation planerotation


    【解决方案1】:

    实际上,我认为您可以使用比Mark's approach 简单得多的东西。

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

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

      李>

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

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

    Perspective Texture Mapping by Chris Hecker

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-26
        • 1970-01-01
        • 2015-10-07
        相关资源
        最近更新 更多