我想使用dewarp
(python
等)opencv/PIL
图片。我有4点我知道他们应该在飞机上形成一个矩形。
在gimp中,我可以使用dewarp
手动backwards-correction
图片,但我想编写一个不依赖gimp
的程序。
我发现的所有函数都依赖于转换matrix
,所以我想我可以就如何计算正确的matrix
提供一些指示。
Greets&谢谢你的帮助
答案 0 :(得分:3)
要计算此矩阵,请使用:
cv2.getPerspectiveTransform(src, dst)
src包含4个点的列表,dst包含新图像角的列表。小心,它们必须按照正确的顺序
答案 1 :(得分:1)
我不使用python,但这里是你在c ++中的答案它应该是相同的:
transformationMatrix= cv::getPerspectiveTransform(source , dst_pnt); // getting the transformation matrix
cv::warpPerspective(src, quad, transformationMatrix,perspectiveSize,1); // warping
.........................
unwarping
cv::Matx33f unwarp = transformMatrix;
cv::Point3f homogeneous = unwarp.inv() *pTmp; // pTmp is a point in your transformaed frame
cv::Mat unwarpFrame = unwarp.inv() * srcFrame; // in case of a frame
enter code here