OpenCV 实现图像与视频旋转:getRotationMatrix2D与warpAffine的应用
需积分: 4 115 浏览量
更新于2024-09-05
收藏 2KB MD 举报
本资源是一份关于在OpenCV中实现图像和视频旋转的C++代码示例。标题"image_video_rotation.md"明确指出了内容的重点,即处理图像旋转的技术。描述部分提到了两种操作:图像旋转(image rotation)和视频旋转(video rotation),这表明代码不仅适用于单张图片,也适用于连续的视频帧。
关键知识点包括:
1. **OpenCV库的使用**:
- 代码中引用了`opencv2\imgproc\imgproc.hpp`和`opencv2\highgui\highgui.hpp`两个头文件,展示了如何利用OpenCV库中的函数来处理图像和视频处理任务。
2. **getRotationMatrix2D()函数**:
- `cv::getRotationMatrix2D(anchor_pt, angle, 1.0)` 是核心函数,它根据指定的中心点`anchor_pt`(通常选择图像或视频的几何中心),旋转角度`angle`(正负值表示顺时针或逆时针旋转),以及缩放因子(1.0表示不改变大小),生成一个旋转矩阵`rot_mat`。
3. **warpAffine()函数**:
- `cv::warpAffine(src, dst, rot_mat, src.size())` 使用旋转矩阵对输入图像进行仿射变换,将`src`图像按照`rot_mat`进行旋转,并将结果保存到`dst`矩阵中。参数`src.size()`确保了输出图像的尺寸与原图相同。
4. **主函数(main())**:
- 在`main()`函数中,首先读取一张图片`src`,然后设置旋转的中心点和角度,调用`rotateImage()`函数进行旋转,最后显示原图`src`和旋转后的图像`dst`。`cv::imshow()`用于显示图像,`cv::waitKey(0)`暂停程序直到用户按键。
5. **应用场景**:
- 这段代码可以应用于任何需要对图像或视频进行旋转的场景,如图像预处理、计算机视觉中的物体检测和识别、视频稳定等。
通过这段代码,读者可以了解到如何使用OpenCV的基本图像处理功能来实现简单的图像和视频旋转,这对于理解和应用OpenCV库进行图像处理和计算机视觉项目非常有帮助。
2020-03-27 上传
2020-02-23 上传
2021-10-25 上传
2023-05-29 上传
2023-06-07 上传
2023-05-26 上传
2023-05-31 上传
2023-06-06 上传
2023-06-02 上传
2023-05-27 上传
GinWn
- 粉丝: 13
- 资源: 2
最新资源
- react-mobx-sample:React Mobx示例应用程序
- 行业分类-设备装置-航天器姿态控制系统的间歇性故障容错分析方法.zip
- Timer
- booInvestments.github.io:CS 422 Stratton Oakmont网站
- new1
- Clean WeChat X.exe
- Project3
- MM32SPIN0x(q) 库函数和例程.rar
- tuneout:一个 Apple 脚本,用于将 iTunes 歌曲和艺术家信息写入文本文件,以便与 OBS 流媒体软件的“文件中的文本”功能一起使用。 TuneOut 和 OBS 一起使用,将在流期间显示 iTunes 正在播放的信息
- NASS-SBoH-2021-1-client-server:客户端服务器
- 套接字服务器
- G2M-insight-for-Cab-Investment-firm-
- money-back-guarantee-contract
- 行业分类-设备装置-航天光学遥感器在轨连续调焦的闭环动态仿真测试方法.zip
- Python库 | sqlalchemy_drill-0.2.1.dev0-py3-none-any.whl
- java版商城源码-mgmsmartcity:管理智慧城市