OpenCV 4.2.0:入门级图片轮廓提取示例

需积分: 12 5 下载量 153 浏览量 更新于2024-09-04 收藏 2KB TXT 举报
在本篇教程中,我们将深入探讨OpenCV 4.2.0版本如何进行图片轮廓提取。OpenCV是一个广泛应用于计算机视觉和图像处理领域的开源库,对于初学者来说,理解并掌握基本的图像处理技术是入门的重要一步。本文提供的程序代码展示了如何使用OpenCV 4.2.0对一张图片(如"F://02.jpg")进行轮廓提取,以实现边缘检测和轮廓识别。 首先,程序包含了必要的库头文件,如`highgui.hpp`、`imgproc.hpp`和`iostream`,以及OpenCV的命名空间`cv`和`std`。全局变量如`g_srcImage`(源图像)、`g_grayImage`(灰度图像)、`g_cannyOutput`(Canny边缘检测结果)等被声明,用于存储图像的不同阶段数据。 加载源图像后,程序将图像转换为灰度并应用低通滤波(模糊处理),这有助于减少噪声,提高边缘检测的准确性。然后,通过`namedWindow`函数创建一个窗口,展示原始图像,并使用`createTrackbar`创建一个阈值滑动条,用户可以通过调整滑动条来控制Canny算子的阈值范围。 `on_ThreshChange`回调函数是程序的核心部分。在这个函数中,首先调用`Canny`函数,它基于两个阈值(`g_nThresh`和`g_nThresh * 2`)对灰度图像进行边缘检测。Canny算法是一种多级边缘检测方法,能够有效地分离噪声和边缘,返回一个二值图像。 接下来,`findContours`函数被用来查找`g_cannyOutput`中的轮廓。参数`RETR_TREE`表示返回轮廓的层次结构,而`CHAIN_APPROX_SIMPLE`则使结果更紧凑,只保留轮廓的顶点。`g_vContours`和`g_vHierarchy`分别存储找到的轮廓集合和轮廓之间的层次关系。 最后,程序在主函数中展示原始图像和Canny边缘检测后的结果,通过滑动条改变阈值,观察轮廓提取效果的变化。这个过程是图像分析中的基础步骤,对于目标检测、物体识别等应用场景至关重要。 本文提供的OpenCV 4.2.0图片轮廓提取示例,展示了如何通过Canny边缘检测和轮廓查找功能,从图像中提取出关键特征,这对于图像处理初学者来说是一个很好的实践机会。通过这段代码,你可以学习到如何利用OpenCV处理图像、设置阈值和处理边缘,从而进一步探索更复杂的图像分析任务。