我想要dewarp
使用python
(opencv/PIL
等)的图像。我有4点,我知道他们应该在飞机上形成一个矩形。在飞机上使用4个点不扭曲/去扭曲图片
在瘸子我可以手动dewarp
图片使用backwards-correction
,但我想编写一个程序,这不依赖于gimp
。
我发现的所有功能都依赖于转换matrix
,所以我想只要给我一些关于如何计算正确的matrix
的指示就足够了。
电贺&感谢您的帮助
我想要dewarp
使用python
(opencv/PIL
等)的图像。我有4点,我知道他们应该在飞机上形成一个矩形。在飞机上使用4个点不扭曲/去扭曲图片
在瘸子我可以手动dewarp
图片使用backwards-correction
,但我想编写一个程序,这不依赖于gimp
。
我发现的所有功能都依赖于转换matrix
,所以我想只要给我一些关于如何计算正确的matrix
的指示就足够了。
电贺&感谢您的帮助
要计算此矩阵,使用方法:
cv2.getPerspectiveTransform(src, dst)
与Src包含你4点列表和DST包含新图像的角落列表。要小心,他们必须在正确的顺序
我不使用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
也谢谢!实际上帮助我找到了正确的翘曲功能。 – user2459109
谢谢!不知道为什么我没有在文档中找到那个... – user2459109