利用C++ 将图片旋转90度
时间: 2024-09-13 11:18:34 浏览: 81
C++中利用opencv来实现图片的旋转
在C++中,将图片旋转90度可以通过多种方式实现,其中一个常见的方法是使用图像处理库,比如OpenCV。以下是使用OpenCV库进行图片旋转的基本步骤:
1. 包含必要的OpenCV头文件。
2. 读取图片。
3. 计算旋转矩阵。OpenCV提供了`cv::getRotationMatrix2D`函数,可以用来获取旋转90度的旋转矩阵。
4. 应用旋转矩阵到图片上。使用`cv::warpAffine`函数,可以将旋转矩阵应用到原图上,得到旋转后的图片。
5. 保存或显示旋转后的图片。
下面是一个简单的示例代码:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
// 读取图片
Mat srcImage = imread("path_to_image.jpg");
if (srcImage.empty()) {
cout << "无法加载图片" << endl;
return -1;
}
// 获取旋转矩阵,参数分别为旋转中心点坐标、旋转角度和缩放因子
Point2f center(srcImage.cols / 2.0F, srcImage.rows / 2.0F);
Mat rotationMatrix = getRotationMatrix2D(center, 90, 1.0);
// 应用旋转矩阵到图片上
Mat dstImage;
warpAffine(srcImage, dstImage, rotationMatrix, srcImage.size());
// 保存旋转后的图片
imwrite("path_to_save_rotated_image.jpg", dstImage);
// 显示图片
namedWindow("Original Image", WINDOW_AUTOSIZE);
imshow("Original Image", srcImage);
namedWindow("Rotated Image", WINDOW_AUTOSIZE);
imshow("Rotated Image", dstImage);
waitKey(0);
return 0;
}
```
请注意,上述代码中旋转后的图片尺寸和原始图片尺寸是一样的,但由于旋转后的图片可能会超出原始图片的边界,因此在实际应用中可能需要调整输出图片的尺寸,或者对图片进行裁剪以适应新的边界。
阅读全文