如何在OpenCV中进行非透视图像变形?

时间:2011-02-14 19:03:55

标签: image-processing opencv computer-vision emgucv


我有一个用户选择任意四角多边形的图像 我想将这个多边形拉伸到整个图像中 我试过用单应性和cvWarpPerspective来做这件事 但结果是透视转换,这不是我想要的 有关如何使用OpenCV / EMGU执行此操作的任何想法?
谢谢,
SW

2 个答案:

答案 0 :(得分:0)

你正在尝试的应该工作。通过使多边形的4个角对应于(0,0)(0,高度)(宽度,0)和(宽度,高度)来计算单应性。

查看GetPerspectiveTransform

答案 1 :(得分:0)

我认为你想要的是透视转换的逆转。

这是你必须考虑做的事情。假设你的多边形位于屏幕上的位置(x1,y1)......(x4,y4)(0,0)....(w,h)。 使用cvWarpPerspective / getPerspectiveTransform应用透视变换,您将能够获得已知坐标的原始坐标。所以你基本上应该把已知的坐标与透视变换矩阵的倒数相乘(除非那是不可逆的,在这种情况下你必须在均匀 - 坐标项中添加一个delta项)