-
02-07-2019 - |
题
我正在开发一个应用程序来检测图像中最突出的矩形,然后试图旋转它以使矩形的左下角位于原点,类似于IUPR的 OSCAR 系统正常运行。然而,一旦检测到最突出的矩形,我不确定如何考虑深度分量或z轴,因为矩形不总是“正面”。我将非常感谢任何进一步理解的例子。下面是IUPR OSCAR系统的一个例子。
alt文本http://quito.informatik.uni-kl.de/oscar/oscar.php?serverimage=img_0324.jpg&montage=use
解决方案
在这种情况下,您实际上不需要处理3D信息,它只是一个映射函数,从一组坐标到另一组坐标。
看看仿射变换,它们能够纠正简单的倾斜和透视效果。您应该能够在某处找到可以从矩形角上的4个点计算变换的代码。
几乎忘了 - 如果“快”的话非常重要,您可以将系统简化为仅使用简单的剪切变换组合,但这会对高度倾斜的主体的图像质量产生不良影响。
其他提示
实际上,我认为你可以通过比 Mark的方法更简单的方法来逃避
-
在倾斜图像上获得2D坐标后,将这些坐标重新用作纹理坐标。
-
在渲染器中,绘制一个简单的矩形,其中每个角的顶点都纹理映射到在倾斜的2D图像上找到的顶点(标准化并以其他方式转换为渲染系统的纹理坐标平面)。
醇>
现在您可以依靠硬件(使用OpenGL或类似工具)为您进行校正,或者您可以编写自己的纹理映射器:
由于我们正在处理实际的3D信息,因此需要猜测宽高比。但是,只需获取倾斜矩形的最大宽度和最大高度即可。
不隶属于 StackOverflow