【OpenCV】图像旋转

图像旋转

getRotationMatrix2D(Point(w / 2, h / 2),45,1.0)函数

参数1原来图像的中心位置。参数2角度是多少。参数3是图像本身大小的放大缩小

在这里插入图片描述

完整代码

void QuickDemo::rotate_demo(Mat &image)
{
    
    
	Mat dst, M;
	int h = image.rows;//定义图片的高度
	int w = image.cols;//定义图片的宽度
	M = getRotationMatrix2D(Point(w / 2, h / 2),45,1.0);
	double cos = abs(M.at<double>(0, 0));
	double sin = abs(M.at<double>(0, 1));
	int nw = cos * w + sin * h;
	int nh = sin * w + cos * h;
	M.at<double>(0, 2) += (nw / 2 - w / 2);
	M.at<double>(1, 2) += (nh / 2 - h / 2);
	//参数1原来图像的中心位置。参数2角度是多少。参数3是图像本身大小的放大缩小
	warpAffine(image, dst, M,Size(nw,nh),INTER_LINEAR,0, Scalar(0, 0, 255));
	imshow("旋转演示", dst);
}

结果展示

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44824148/article/details/120803121