c++如何使用opencv实现图像旋转和图像镜像
时间: 2024-12-12 08:22:22 浏览: 89
在C++中使用OpenCV库实现图像旋转和图像镜像操作非常直接,因为OpenCV提供了一系列函数来处理这两种常见的图像变换。
1. **图像旋转**:
使用`cv::getRotationMatrix2D()`函数计算旋转矩阵,然后应用到图片上。这是一个示例:
```cpp
#include <opencv2/opencv.hpp>
cv::Mat img = ... // 加载或读取图像
double angle = 45; // 旋转角度,单位为度
int centerPointX = img.cols / 2;
int centerPointY = img.rows / 2;
cv::Mat rotationMatrix = cv::getRotationMatrix2D(cv::Point(centerPointX, centerPointY), angle, 1); // 保持原尺寸旋转
cv:: Mat rotatedImg;
cv::warpAffine(img, rotatedImg, rotationMatrix, img.size());
```
2. **图像镜像**:
对于水平或垂直镜像,可以分别使用`cv::flip()`函数:
- 水平镜像 (左右对称):
```cpp
cv::flip(img, mirrorImage, 0); // 第二个参数为0表示水平翻转
```
- 垂直镜像 (上下对称):
```cpp
cv::flip(img, mirrorImage, 1); // 第二个参数为1表示垂直翻转
```
记得在使用之前导入必要的头文件,并确保已经安装了OpenCV库。这两个操作完成后,`rotatedImg`和`mirrorImage`变量将分别存储旋转后的图像和镜像版本。
阅读全文
相关推荐


















