c++图像旋转翻转变换
时间: 2023-07-19 11:43:15 浏览: 158
c++数字图像处理
C++中可以使用OpenCV库来实现图像的旋转和翻转变换。下面是一些示例代码:
1. 图像旋转:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
// 读取图像
Mat src = imread("lena.jpg");
// 获取图像中心点坐标
Point2f center(src.cols / 2, src.rows / 2);
// 旋转角度和缩放比例
double angle = 45;
double scale = 1;
// 生成旋转矩阵
Mat rot = getRotationMatrix2D(center, angle, scale);
// 仿射变换
Mat dst;
warpAffine(src, dst, rot, src.size());
// 显示结果
imshow("src", src);
imshow("dst", dst);
waitKey();
return 0;
}
```
2. 图像水平翻转:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
// 读取图像
Mat src = imread("lena.jpg");
// 水平翻转
Mat dst;
flip(src, dst, 1);
// 显示结果
imshow("src", src);
imshow("dst", dst);
waitKey();
return 0;
}
```
3. 图像垂直翻转:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
// 读取图像
Mat src = imread("lena.jpg");
// 垂直翻转
Mat dst;
flip(src, dst, 0);
// 显示结果
imshow("src", src);
imshow("dst", dst);
waitKey();
return 0;
}
```
阅读全文