OpenCV图像旋转Rotate的方法
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要介绍"OpenCV图像旋转Rotate的方法"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"OpenCV图像旋转Rotate的方法"文章能帮助大家解
千家信息网最后更新 2025年01月18日OpenCV图像旋转Rotate的方法
这篇文章主要介绍"OpenCV图像旋转Rotate的方法"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"OpenCV图像旋转Rotate的方法"文章能帮助大家解决问题。
功能函数
// 图像旋转void Rotate(const cv::Mat &srcImage, cv::Mat &dstImage, double angle, cv::Point2f center, double scale){ cv::Mat M = cv::getRotationMatrix2D(center, angle, scale);//计算旋转的仿射变换矩阵 cv::warpAffine(srcImage, dstImage, M, cv::Size(srcImage.cols, srcImage.rows));//仿射变换 }
getRotationMatrix2D函数原型
getRotationMatrix2D用来获得旋转的仿射变换矩阵。
Mat getRotationMatrix2D(Point2f center, double angle, double scale);
getRotationMatrix2D参数说明
Point2f类型的center,旋转中心。
double类型的angle,逆时针旋转的角度。
double类型的scale,图像旋转后的尺寸比例。
warpAffine函数原型
warpAffine用来仿射变换。
void warpAffine( InputArray src, OutputArray dst, InputArray M, Size dsize, int flags = INTER_LINEAR, int borderMode = BORDER_CONSTANT, const Scalar& borderValue = Scalar());
warpAffine参数说明
InputArray类型的src,输入图像。
OutputArray类型的dst,输出图像。
InputArray类型的M,仿射变换矩阵。
Size类型的dsize,输出图像的大小。
int类型的flags,插值方法。
int类型的borderMode,边界填充方法。
const Scalar&类型的borderValue,边界填充数值。
C++测试代码
#include#include using namespace std;using namespace cv;// 图像旋转void Rotate(const cv::Mat &srcImage, cv::Mat &dstImage, double angle, cv::Point2f center, double scale){ cv::Mat M = cv::getRotationMatrix2D(center, angle, scale);//计算旋转的仿射变换矩阵 cv::warpAffine(srcImage, dstImage, M, cv::Size(srcImage.cols, srcImage.rows));//仿射变换 }int main(){ // 载入图像 cv::Mat src = imread("0.jpg"); cv::Mat dst; // 定义参数 int row = src.rows; int col = src.cols; double angle = 30; cv::Point2f center(col / 2, row / 2); double scale = 0.5; // 图像旋转 Rotate(src, dst, angle, center, scale); // 显示图像 imshow("src", src); imshow("result", dst); waitKey(0); system("pause"); return 0;}
测试效果
图原图
图2 旋转30°
图3原图大小旋转45
不难看出,旋转后原图的尺寸已经无法满足图像要求了,此时可以缩小比例,也可以扩展整图尺寸使其完全覆盖。
关于"OpenCV图像旋转Rotate的方法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
图像
类型
仿射
变换
方法
矩阵
函数
原图
参数
尺寸
知识
原型
大小
比例
行业
边界
测试
输出
不同
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
电影服务器50m带宽能带多少
c 随机double数据库
北京语音网络技术服务设计
domino用户数据库
lnmp 数据库管理
企业微信关联数据库
我国网络安全的感想
软件开发 类设计
网络安全作业培训总结
路由器dmz服务器
券商数据库压力
虚拟主机数据库无法使用
内江社区网络安全宣传
忻州有没有招做网络安全的
玩游戏 代理服务器
泰安摘星网络技术有限公司
镇赉软件开发系统
铭桃互联网科技
广东信息化少儿编程平台软件开发
广闪联网络技术有限公司
贴心的软件开发
软件开发关于人工智能的题
北京时代网络技术分类优势
网络安全成长经典案例
人工智能软件开发企业排名大全
华为软件开发云 汪维敏
数据库逻辑常量的位置
软件开发法律风险及解决办法
南充创新网络技术有限公司
java做登录界面加数据库