//opencv
#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
/***********************************************************************************************
Function: RotateImage
Description: 旋转图片
Input: src:需要旋转的图片路径 angle:旋转角度
Return: 旋转后的图片
***********************************************************************************************/
cv::Mat RotateImage(cv::Mat src, double angle)
{
cv::Mat dst;try
{
//float scale = 200.0/ src.rows;
//缩放因子
//cv::resize(src, src, cv::Size(), scale, scale, cv::INTER_LINEAR);
//输出图像的尺寸与原图一样
cv::Size dst_sz(src.cols, src.rows);
//指定旋转中心
cv::Point2f center(static_cast(src.cols / 2.), static_cast(src.rows / 2.));
//获取旋转矩阵(2x3矩阵)
cv::Mat rot_mat = cv::getRotationMatrix2D(center, angle, 1.0);
//设置选择背景边界颜色
/*cv::Scalar borderColor = Scalar(0, 238, 0);*/
/*cv::warpAffine(src, dst, rot_mat, src.size(), INTER_LINEAR, BORDER_CONSTANT, borderColor);*/
//复制边缘填充
cv::warpAffine(src, dst, rot_mat, dst_sz, cv::INTER_LINEAR, cv::BORDER_REPLICATE);
}
catch (cv::Exception e)
{
}
return dst;
}
网友评论