opencv 图片旋转c++
时间: 2024-08-22 18:00:15 浏览: 53
在OpenCV库中,图片旋转是一个常见的图像处理操作。在C++中,你可以使用`cv::warpAffine()`函数来实现这一功能。以下是基本步骤:
1. 导入所需头文件:
```cpp
#include <opencv2/opencv.hpp>
```
2. 加载图片:
```cpp
cv::Mat img = cv::imread("input.jpg", cv::IMREAD_COLOR);
if (img.empty()) {
std::cout << "Failed to load image" << std::endl;
return;
}
```
3. 定义旋转矩阵。假设你想顺时针旋转90度,可以这样做:
```cpp
double angle = 90.0; // 角度,单位是弧度
Point2f center(img.cols / 2.0, img.rows / 2.0); // 图像中心点
Mat rot_matrix = getRotationMatrix2D(center, angle, 1.0); // 保持缩放比例不变
```
这里使用了`getRotationMatrix2D()`函数,它根据给定的角度、旋转中心和是否保持缩放比例创建旋转矩阵。
4. 执行旋转:
```cpp
cv::Mat rotated_img;
cv::warpAffine(img, rotated_img, rot_matrix, img.size());
```
5. 可能的话,保存旋转后的图片:
```cpp
cv::imwrite("output.jpg", rotated_img);
```
如果你需要逆时针旋转,只需要将角度设为负值即可。
阅读全文