2013-08-01 56 views
2

我想要dewarp使用pythonopencv/PIL等)的圖像。我有4點,我知道他們應該在飛機上形成一個矩形。在飛機上使用4個點不扭曲/去扭曲圖片

在瘸子我可以手動dewarp圖片使用backwards-correction,但我想編寫一個程序,這不依賴於gimp

我發現的所有功能都依賴於轉換matrix,所以我想只要給我一些關於如何計算正確的matrix的指示就足夠了。

電賀&感謝您的幫助

回答

3

要計算此矩陣,使用方法:

cv2.getPerspectiveTransform(src, dst) 

與Src包含你4點列表和DST包含新圖像的角落列表。要小心,他們必須在正確的順序

+0

謝謝!不知道爲什麼我沒有在文檔中找到那個... – user2459109

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 
+0

也謝謝!實際上幫助我找到了正確的翹曲功能。 – user2459109