OpenCV图像读取与显示:一个简单的实例解析

需积分: 9 22 下载量 37 浏览量 更新于2024-08-19 收藏 3.04MB PPT 举报
"该资源是关于使用OpenCV库进行图像文件读入和显示的一个实例教程。作者Shiqi Yu在2006年创建了这个示例,它演示了如何通过OpenCV API来加载和显示图像。教程中还提到了一些常用的图像文件,如Lena.jpg、Fruits.jpg、Baboon.jpg和Airplane.jpg。" 在这个OpenCV实例中,我们首先看到一个简单的C++程序,用于读取和显示图像文件。关键知识点包括: 1. **IplImage结构体**: 在OpenCV的老版本中(这里可能是较早的版本),`IplImage`是一个图像数据结构,用于存储图像信息,如宽度、高度、颜色通道数、深度等。在现代OpenCV中,已经被`cv::Mat`所取代。 2. **cvLoadImage函数**: 这个函数用于从磁盘加载图像。它接受一个文件路径作为参数,并可选地接收一个整数值,表示图像的加载模式。在这个例子中,参数1表示加载为彩色图像(如果是0,则会加载为灰度图像)。 ```cpp IplImage* pImg = cvLoadImage("filename.jpg", 1); ``` 3. **cv::imread函数替代**: 在现代OpenCV中,我们通常使用`cv::imread`来代替`cvLoadImage`。例如: ```cpp cv::Mat img = cv::imread("filename.jpg", cv::IMREAD_COLOR); ``` 4. **图像显示**: 一旦图像被加载到内存,我们可以使用`cvNamedWindow`创建一个新的窗口,然后使用`cvShowImage`在该窗口中显示图像。在新版本的OpenCV中,相应的函数是`cv::namedWindow`和`cv::imshow`。 ```cpp cvNamedWindow("Image Window", CV_WINDOW_AUTOSIZE); cvShowImage("Image Window", pImg); // 现代OpenCV cv::namedWindow("Image Window", cv::WINDOW_NORMAL); cv::imshow("Image Window", img); ``` 5. **图像文件格式**: 示例中提到的图像文件格式是JPEG,但OpenCV也支持其他格式,如PNG、BMP、TIFF等。 6. **常用标准图像**: Lena、Fruits、Baboon和Airplane是计算机视觉领域中常见的测试图像,用于展示和测试不同的图像处理算法。 7. **其他OpenCV功能**: 提到的其他OpenCV实例包括图像创建、保存和复制,边缘检测(如Canny算法),轮廓检测,图像旋转与缩放,视频处理,Hough变换,鼠标绘图,离散傅立叶变换,人脸识别,QR分解,贝塞尔曲线绘制,DirectShow图像采集,目标跟踪,摄像头标定,高斯背景建模,图像缩放以及高级图像处理技术。 这个实例是学习OpenCV基础操作的起点,对于任何想要开始使用OpenCV进行图像处理的开发者来说,都是一个很好的起点。通过理解这些基本操作,可以进一步探索OpenCV提供的广泛图像处理和计算机视觉功能。