OpenCV 实现图像与视频旋转:getRotationMatrix2D与warpAffine的应用

需积分: 4 0 下载量 199 浏览量 更新于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库进行图像处理和计算机视觉项目非常有帮助。
2023-06-12 上传