<分区>
我正在编写一些代码,将 OpenCV Mat 旋转指定的角度。使用下面的代码,我已经成功地围绕它的中心旋转了 Mat,但是由于图像不是正方形,旋转后的图像的中心不是新图像的中心,并且图像的一部分落在了新垫子。
Point2f src_center(source.cols/2.0F, source.rows/2.0F);
Mat rot_mat = getRotationMatrix2D(src_center, angle, 1.0);
Mat final;
final.create(calculateHeight(source.cols, source.rows, angle), calculateWidth(source.cols, source.rows, angle), CV_32FC1);
warpAffine(source, final, rot_mat, final.size());
注意:calculateHeight 和 calculateWidth 是根据原始 Mat 的尺寸和旋转角度简单地确定新 Mat 大小的方法。
示例:Original image旋转到:rotated image
如何旋转垫子,使旋转后的垫子在边界内居中?