图像旋转跟缩放:
注意:
OpenCV没有提供直接旋转图像的函数
图像旋转可能会造成图像信息丢失
图像旋转可以用仿射变换来实现
主要用到函数:
getRotationMatrix2D()
warpAffine()
示例如下:
#include"opencv2/opencv.hpp"
using namespace cv;
void main()
{
Mat src = imread("1.jpg");
Point2f center=Point2f(src.cols/2,src.rows/2);//获取旋转中心
double angle = 30;//旋转角度
double scale = 0.5;//旋转尺寸
Mat roateM;//定义旋转矩阵
roateM = getRotationMatrix2D(center,angle,scale);//调用旋转方法
Mat dst;
warpAffine(src,dst,roateM,Size(600,400));//size():是旋转背景大小
imshow("原图",src);
imshow("旋转后图像",dst);
waitKey(0);
}
注意:
我在写这个小例子的时候故意把图片越界,目的是为了提醒学习的同学
旋转是很容易越界的。