2013-11-15 57 views
1

我使用的OpenCV做一些圖像處理作業。我想用仿射方法來轉換圖像。這是我的代碼:爲什麼getAffineTransform返回零矩陣

Point2f srcTri[3]; 
Point2f dstTri[3]; 

srcTri[0] = Point2f(0.0, 1.0); 
srcTri[1] = Point2f(50.0, 1.0); 
srcTri[2] = Point2f(10.0, 1.0); 

dstTri[0] = Point2f(1.0, 1.0); 
dstTri[1] = Point2f(5.0, 50.0); 
dstTri[2] = Point2f(110.0, 200.0); 

Mat warpMat = getAffineTransform(srcTri, dstTri); 
cout << warpMat << endl; 

但是打印結果是零矩陣。我的代碼有什麼問題?

回答

3

所有的源點具有相同y座標,因此源三角形是不是一個真正的三角形而是一條線。

您正在試圖解決一個單一的問題。線條的任何仿射變換都是一條線(不能「膨脹」某個區域中的一條線)。