为什么getAffineTransform返回零矩阵

时间:2013-11-15 07:32:38

标签: opencv image-processing computer-vision

我正在使用OpenCV做一些图像处理工作。我想用仿射方法转换图像。这是我的代码:

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;

但是打印结果是零矩阵。我的代码出了什么问题?

1 个答案:

答案 0 :(得分:3)

源中的所有点都具有相同的y坐标,因此源三角形实际上不是三角形而是一条直线。

你正试图解决一个单一的问题。线的任何仿射变换都是一条线(你不能“膨胀”区域中的一条线)。