opencv 图像旋转和仿射变换

前言

getRotationMatrix2D 计算获取旋转矩阵

warpAffine 仿射变换

测试代码

#include <iostream>
#include <vector>
#include <opencv2/opencv.hpp>

// 图像旋转和仿射变换
int main()
{
	cv::Mat src = cv::imread("./image/4.png");
	if (src.empty())
		std::cout << "imread image fail!" << std::endl;

	cv::Mat angle_img;
	double angle = 10;								                // 旋转角度
	cv::Point2f centor(src.rows / 2.0, src.cols / 2.0);             // 旋转中心
	cv::Size dst_size(src.cols, src.rows);                          // 目标图像尺寸
	cv::Mat rotation = cv::getRotationMatrix2D(centor, angle, 1 );  // 获取旋转矩阵
	cv::warpAffine(src, angle_img, rotation, dst_size);             // 仿射变换
	cv::imshow("src", src);
	cv::imshow("angle_img", angle_img);
	cv::waitKey(0);
	return 0;
}

调试结果

posted @ 2021-12-21 13:20  想想就很离谱  阅读(44)  评论(0编辑  收藏  举报