OpenCV图像读取与显示:一个简单的实例解析
需积分: 9 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提供的广泛图像处理和计算机视觉功能。
2020-04-29 上传
2011-04-22 上传
2014-04-30 上传
2021-01-20 上传
2020-09-20 上传
2020-12-23 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情