2011-02-14 89 views
2


我有一个图像,用户选择一个任意的四角多边形。
我想拉伸这个多边形到整个图像。
我试过用单应性和cvWarpPerspective做,
但结果是透视转换,这不是我想要的。
任何想法如何与OpenCV/EMGU做到这一点?

感谢,
SW如何在OpenCV中进行非视角图像变形?

+0

什么样的变换你要?而仿射投影只能拟合3个点(平行四边形)。 – Niki 2011-02-14 22:55:27

回答

0

什么你想应该工作。通过使多边形的四个角对应于(0,0)(0,高度)(宽度,0)和(宽度,高度)来计算单应性。

看一看GetPerspectiveTransform

0

我想你想要的是视角的变换逆转。

以下是您必须考虑的事情。假设您在屏幕上最初出现的位置(x1,y1)....(x4,y4)上有多边形(0,0)....(w,h)。 使用cvWarpPerspective/getPerspectiveTransform应用透视变换,您将能够获得原始坐标到已知的坐标。所以你应该基本上乘以已知坐标与透视变换矩阵的倒数(除非它是不可逆的,在这种情况下,你必须在均匀协调项上增加一个三角项)