计算机视觉

C++ opencv旋转图片(二)

2018-07-01  本文已影响0人  刘千予

//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;

}

上一篇下一篇

猜你喜欢

热点阅读