C++ opencv图像翻转
时间: 2025-04-21 13:41:45 浏览: 37
### C++ OpenCV 实现图像翻转示例代码
在OpenCV中,`cv::flip` 函数用于执行图像的翻转操作。此函数接受三个参数:源图像、目标图像以及指定翻转类型的整数 `flipCode`。
对于不同方向上的翻转需求:
- 当 `flipCode=0` 时,表示沿水平轴(即X轴)进行上下翻转;
- 如果设置为正值如 `flipCode>0` (通常设为1),则代表沿垂直轴(Y轴)做左右镜像处理;
- 而当传入负值 `-1` ,意味着同时围绕两个轴实施反转效果,相当于进行了180度旋转[^4]。
下面给出一段完整的C++程序来展示如何利用上述方法完成图像的三种基本形式的翻转,并显示结果窗口以便观察变化后的图片[^5]。
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
void showFlipImage(const Mat& img, const string& winName, int flipType){
Mat flippedImg;
flip(img,flippedImg ,flipType);
namedWindow(winName,CV_WINDOW_AUTOSIZE );
imshow(winName,flippedImg);
}
int main(){
// 加载原始图像
Mat original = imread("path_to_image.jpg");
if(original.empty()){
printf("Could not open or find the image\n");
return -1;
}
// 显示原图
namedWindow("Original Image", CV_WINDOW_AUTOSIZE);
imshow("Original Image",original);
// 上下翻转并显示
showFlipImage(original,"Up Down Flip Result",0);
// 左右翻转并显示
showFlipImage(original,"Left Right Flip Result",1);
// 对角线翻转(180度旋转) 并显示
showFlipImage(original,"Diagonal Flip Result",-1);
waitKey(0); //等待按键事件关闭所有创建好的窗口
destroyAllWindows();
}
```
该段代码定义了一个辅助函数 `showFlipImage()` 来简化调用过程中的重复部分,使得主逻辑更加清晰简洁。通过调整传递给它的第三个参数即可轻松切换不同的翻转模式[^3]。
阅读全文
相关推荐


















