OpenCV图像处理:基本读取与叠加

需积分: 10 0 下载量 149 浏览量 更新于2024-09-11 收藏 1KB TXT 举报
本篇代码主要介绍了如何在OpenCV 2.1环境下处理和操作图片,包括图片的读取、叠加以及显示。OpenCV是一个广泛应用于计算机视觉和机器学习的开源库,它提供了丰富的图像处理和计算机视觉功能。 首先,我们来看第一个示例。在`main`函数中,程序通过`imread`函数从指定路径"D:\\9.jpg"读取一张图片到`Mat`对象`img`中。`imread`函数用于从磁盘或内存中加载图像数据,如果加载失败(如文件不存在或者格式不支持),返回空指针,因此这里检查`img.data`是否为NULL来判断图片是否成功加载。接着,使用`namedWindow`函数创建一个窗口,名为"Ƭ",并设置窗口大小自动适应图像内容,`imshow`函数则将图片显示在该窗口中。最后,调用`waitKey`函数等待用户按键,然后退出程序。 第二个示例中,代码加载了两张图片:一张水果图片("D:\\Fruits.jpg")和一张logo图片("D:\\logo.png")。首先,分别将这两张图片读入`Mat`对象`image`和`logo`。然后,通过`Rect`结构体定义了一个ROI(Region of Interest,感兴趣区域),在这里是logo在原图中的位置(左上角坐标10,10,宽度和高度分别为logo的列数和行数)。接下来,使用`addWeighted`函数对ROI部分进行操作,这个函数可以计算两个矩阵(这里是ROI和logo)的加权和,权重分别为1.0和0.3,表示logo会以较轻的透明度叠加到ROI上。结果被赋值回`imageROI`。最后,创建一个名为"result"的新窗口,显示处理后的图片,再次调用`imshow`和`waitKey`完成显示和等待用户交互。 总结来说,这段代码展示了OpenCV的基本操作,包括图片的读取、ROI的选取和图片的叠加(这里使用了加权叠加来实现透明度效果)。通过这些基本操作,开发者可以进一步探索OpenCV的更多高级功能,如图像滤波、特征检测、物体识别等,以便在实际项目中应用。