图形旋转 主要用矩阵实现坐标系的变换
两个函数比较重要:
getRotationMatrix2D 获取旋转矩阵
warpAffine 实现坐标系仿射变换
注意: 图形旋转之后,边缘有渐变平滑的锯齿
所以旋转后,本图不再是二值图像,有渐变灰度
(如果使用投影变换,则需要使用perspectiveTransform和warpPerspective)
不多说,上例子:
void rotate_test()
{
Mat image(240, 320, CV_8U, Scalar(0));
Point center(130, 55);
double angle = 15;
rectangle(image, Rect(80, 60, 100, 50), Scalar(255), CV_FILLED);
Mat R = getRotationMatrix2D(center, angle, 1.0);// 逆时针旋转angle
Mat imgR;
warpAffine(image, imgR, R, Size(320, 240));
imshow("Image", image);
imshow("Rotate image", imgR);
waitKey(0);
}