OpenCV图像水平竖直翻转并保存

需积分: 10 1 下载量 161 浏览量 更新于2024-09-09 收藏 762B TXT 举报
"这是一个使用OpenCV 2.4.8库进行图像水平和垂直翻转,并输出为其他格式的简单程序,适用于入门学习者。" 在计算机视觉领域,OpenCV是一个强大的开源库,它提供了大量的图像处理和计算机视觉功能。在这个程序中,主要涉及了以下几个OpenCV的关键知识点: 1. **OpenCV头文件导入**: - `#include<opencv2/core/core.hpp>`:包含了OpenCV的基本数据结构和核心运算。 - `#include<opencv2/highgui/highgui.hpp>`:用于图像显示和读写操作。 - `#include<opencv2/opencv.hpp>`:包含所有OpenCV模块,通常在项目中引入这一个就足够了。 - `#include<opencv2/imgproc/imgproc.hpp>`:用于图像处理和计算机视觉算法。 2. **读取图像**: 使用`cv::imread`函数读取图像文件,例如"img.jpg",并将结果存储在`cv::Mat`类型的变量`image`中。`cv::Mat`是OpenCV中的一个矩阵类,可以表示图像数据。 3. **输出图像信息**: `image.size().height`和`image.size().width`分别获取图像的高度和宽度,通过`std::cout`打印出来,方便查看图像的尺寸。 4. **创建窗口和显示图像**: `cv::namedWindow`函数创建了一个名为"OriginalImage"的窗口,`cv::imshow`函数将`image`显示在这个窗口中,展示原始图像。 5. **图像翻转**: 使用`cv::flip`函数对图像进行水平或垂直翻转。在这个例子中,参数`-1`表示同时进行水平和垂直翻转。翻转后的图像存储在`result`变量中。 6. **创建新的窗口并显示翻转后的图像**: 同样,创建一个名为"OutputImage"的窗口,并使用`cv::imshow`函数显示`result`,即翻转后的图像。 7. **图像保存**: 使用`cv::imwrite`函数将翻转后的图像保存为"output.bmp"。`cv::imwrite`支持多种图像格式,可以根据需要更改文件扩展名。 8. **等待用户按键**: `cv::waitKey(5000)`函数会暂停程序执行,等待用户按键,参数5000表示等待5秒钟。在这5秒内,用户可以查看图像并关闭窗口。如果用户按下任意键,`waitKey`会立即返回按键的ASCII码。 这个程序是OpenCV初学者理解基本图像处理操作的一个很好的起点,通过它你可以学习到如何加载、显示、处理和保存图像。随着对OpenCV的深入学习,你可以实现更多复杂的图像处理任务。