opencv学习

贾志刚第21-图像的旋转

void QuickDemo::rotate_demo(Mat &image) {
	Mat dst, M;
	int w = image.cols;
	int h = image.rows;
	M = getRotationMatrix2D(Point2f(w / 2, h / 2), 45, 1.0);
	double cos = abs(M.at(0, 0));
	double sin = abs(M.at(0, 1));
	int nw = cos * w + sin * h;
	int nh = sin * w + cos * h;
	M.at(0, 2) += (nw / 2 - w / 2);
	M.at(1, 2) += (nh / 2 - h / 2);
	warpAffine(image, dst, M, Size(nw, nh), INTER_LINEAR, 0, Scalar(255, 255, 0));
	imshow("旋转演示", dst);
}

图像旋转:getRotationMatrix2D详解--无损失旋转图片 - 腾讯云开发者社区-腾讯云

M = getRotationMatrix2D(Point2f(w / 2, h / 2), 45, 1.0);

M=cv2.getRotationMatrix2D(center, angle, scale)

函数有三个输入参数:

center:图片的旋转中心
angle:旋转角度
scale:旋转后图像相比原来的缩放比例
M:计算得到的旋转矩阵

你可能感兴趣的:(opencv,学习,计算机视觉)