iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >OpenCV图像旋转Rotate的详细介绍
  • 474
分享到

OpenCV图像旋转Rotate的详细介绍

2024-04-02 19:04:59 474人浏览 薄情痞子
摘要

目录功能函数 getRotationMatrix2D函数原型getRotationMatrix2D参数说明warpAffine函数原型warpAffine参数说明c++测试

功能函数

// 图像旋转
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 <iOStream>
#include <OpenCV.hpp>
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的文章就介绍到这了,更多相关OpenCV图像旋转内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

--结束END--

本文标题: OpenCV图像旋转Rotate的详细介绍

本文链接: https://www.lsjlt.com/news/147809.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • OpenCV图像旋转Rotate的详细介绍
    目录功能函数 getRotationMatrix2D函数原型getRotationMatrix2D参数说明warpAffine函数原型warpAffine参数说明C++测试...
    99+
    2022-11-13
  • 超详细注释之OpenCV旋转图像任意角度
    上一篇博客介绍了 如何使用Python,OpenCV上下左右(或任意组合)平移图像。这篇博客将介绍如何使用OpenCV旋转图像任意角度。并演示如何使用imutils库中的两个函数im...
    99+
    2022-11-12
  • OpenCV+Imutils实现图像的旋转操作
    目录前言 使用 OpenCV 旋转图像使用 OpenCV 顺时针旋转图像围绕任意点旋转图像使用 Imutils 旋转图像总结前言  本文,将描述使用 OpenC...
    99+
    2022-11-13
  • CSS图片翻转动画技术的详细介绍
    这篇文章主要讲解了“CSS图片翻转动画技术的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS图片翻转动画技术的详细介绍”吧!CSS动画非常的有趣...
    99+
    2022-10-19
  • 超详细注释之OpenCV操作图像平移转换
    这篇博客将介绍如何使用Python,OpenCV对图像进行平移转换。平移是图像沿x轴和y轴的移动。使用平移,可以将图像上下左右移动,以及上述任意组合。要使用OpenCV平移图像,只需...
    99+
    2022-11-12
  • OpenCV和C++实现图像的翻转(镜像)、平移、旋转、仿射与透视变换
    目录一、翻转(镜像)二、仿射扭曲获取变换矩阵仿射扭曲函数 warpAffine旋转平移三、仿射变换四、透视变换综合示例总结官网教程 一、翻转(镜像) 头文件 quick_opencv...
    99+
    2022-11-12
  • Linux抓图工具KSnapshot的详细介绍
    这篇文章主要讲解了“Linux抓图工具KSnapshot的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux抓图工具KSnapshot的详细介绍”吧!启动TurboLinux6...
    99+
    2023-06-16
  • Python OpenCV超详细讲解图像堆叠的实现
    目录准备工作水平堆叠垂直堆叠图像栈堆叠准备工作 右击新建的项目,选择Python File,新建一个Python文件,然后在开头import cv2导入cv2库,import num...
    99+
    2022-11-13
  • Mysql数据库VIEW视图的详细介绍
    本文主要给大家介绍Mysql数据库VIEW视图的详细介绍,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下Mysql数据库VIEW视图的详细介绍吧。&n...
    99+
    2022-10-18
  • win7镜像文件下载地址的详细介绍
    很多网友询问小编哪里可以下载到最安全的windows7iso镜像文件?网上搜索关于windows7iso镜像文件的资讯内容比较少,所以很多用户都不知道如何下载。今天小编给大家带来了win732以及win7 64位系统镜像文件的下载地址,大家...
    99+
    2023-07-16
  • 详细介绍UniApp页面跳转传值的方法
    近年来,随着移动互联网技术的发展和移动设备的普及,开发APP已经成为了一种时髦和高效的方式来扩展业务。而UniApp作为一款跨平台开发工具,在应用开发过程中具有很强的便捷性和高效性。然而,对于在开发UniApp应用中涉及到的页面跳转和参数传...
    99+
    2023-05-14
  • Android 常见的图片加载框架详细介绍
    Android 常见的图片加载框架 图片加载涉及到图片的缓存、图片的处理、图片的显示等。而随着市面上手机设备的硬件水平飞速发展,对图片的显示要求越来越高,稍微处理不好就会造成内...
    99+
    2022-06-06
    图片 框架 Android
  • vue中使用svg画路径图的详细介绍
    什么是svg: SVG 是使用 XML 来描述二维图形和绘图程序的语言。 svg的优点与特点 SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失SVG 是万维网联盟的标准SV...
    99+
    2022-11-13
  • win10截图快捷键是什么的详细介绍
    我们经常使用截屏功能,有时候为了保存文字或编辑文案等内容,都需要截图。当用户在使用Win10系统截图时,却不知道该怎么去操作,今天小编来跟大家说说win10截图快捷键是什么的详细介绍,大家一起来看看吧。1、系统自带键盘上的按键PrintSc...
    99+
    2023-07-24
  • Python详细讲解图像处理的而两种库OpenCV和Pillow
    目录一、简介1.1 图像处理-OpenCV1.2 图像处理- PIL和Pillow二、常用图像类型2.1 二值图像2.2 灰度图像2.3 RGB图像2.4 常用颜色空间简介三、Ope...
    99+
    2022-11-11
  • win7系统截图方法有哪些的详细介绍
    在我们使用电脑的时候会浏览到一些比较感兴趣的图片或者文章段落,有的可以直接保存在电脑上,有的不能,这时候就需要通过截图来保存了。我想朋友们通常都会选择利用自己下载的软件上的相关功能进行截图,不过,下面,小编还得来跟大伙聊聊win7怎么系统截...
    99+
    2023-07-13
  • 详细介绍PHP时间转时间戳的几种方法
    PHP时间转时间戳是一项常用的操作,它可以将指定的时间转化为以秒为单位的时间戳。在PHP项目中,时间戳是一个非常重要的概念,它可以用于处理与时间相关的操作,如记录日志、统计时长等。在本文中,我们将介绍PHP时间转时间戳的几种方法。一、使用d...
    99+
    2023-05-14
  • 基于Python和openCV实现图像的全景拼接详细步骤
    基本介绍 图像的全景拼接,即“缝合”两张具有重叠区域的图来创建一张全景图。其中用到了计算机视觉和图像处理技术有:关键点检测、局部不变特征、关键点匹配、RANSAC(Random Sa...
    99+
    2022-11-12
  • Java 列表转换为数组的3种详细方法介绍
    1.介绍 List 接口提供了一种存储有序集合的方法。它是 Collection 的子接口。它是一个有序的对象集合,其中可以存储重复值。由于 List 保留了插入顺序,因此它允许元素的位置访问和插入。...
    99+
    2023-09-22
    java jvm 开发语言
  • 详细介绍 Yolov5 转 ONNX模型 + 使用ONNX Runtime 的 Python 部署(包含官方文档的介绍)
    1 Pytorch模型转Onnx 对ONNX的介绍强烈建议看,本文做了很多参考:模型部署入门教程(一):模型部署简介 模型部署入门教程(三):PyTorch 转 ONNX 详解 以及Pytorch的官...
    99+
    2023-08-31
    python pytorch 深度学习 目标检测
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作