本文小编为大家详细介绍“OpenCV执行连通分量标记的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“OpenCV执行连通分量标记的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在本教程的第一部分,我们将回顾 OpenCV 提供的用于执行连通分量标记和分析的四个函数。这些函数中最受欢迎的是cv2.connectedComponentsWithStats。首先,我们将配置我们的开发环境并查看我们的项目目录结构。接下来,我们将实现两种形式的连通分量分析:一种方法将演示如何使用 OpenCV 的连通分量标记和分析函数,计算每个连通分量的统计数据,然后单独提取/可视化每个连通分量。第二种方法显示了连接分量分析的实际示例。我们对车牌进行阈值化,然后使用连通分量分析仅提取车牌字符。OpenCV 提供了四种连通分量分析函数:cv2.connectedComponentscv2.connectedComponentsWithStatscv2.connectedComponentsWithAlgorithmcv2.connectedComponentsWithStatsWithAlgorithm最流行的方法是 cv2.connectedComponentsWithStats,它返回以下信息:连通分量的边界框连通分量的面积(以像素为单位)连通分量的质心/中心 (x, y) 坐标第一种方法,cv2.connectedComponents,和第二种方法一样,只是不返回上面的统计信息。在绝大多数情况下,您将需要统计信息,因此简单地使用 cv2.connectedComponentsWithStats 即可。第三种方法 cv2.connectedComponentsWithAlgorithm 实现了更快、更有效的连通分量分析算法。如果您使用并行处理支持编译 OpenCV,则 cv2.connectedComponentsWithAlgorithm 和 cv2.connectedComponentsWithStatsWithAlgorithm 将比前两个运行得更快。但一般来说,坚持使用 cv2.connectedComponentsWithStats 直到您熟悉连通分量标记。在我们使用 OpenCV 实现连通分量标记和分析之前,让我们先来看看我们的项目目录结构。我们将应用连通分量分析来自动过滤车牌 (license_plate.png) 中的字符。为了完成这项任务并了解有关连通分量分析的更多信息,我们将实现两个 Python 脚本:basic_connected_components.py:演示如何应用连通分量标记,提取每个组件及其统计数据,并在我们的屏幕上可视化它们。filtering_connected_components.py:应用连通分量标记,通过检查每个连通分量的宽度、高度和面积(以像素为单位)过滤掉非牌照字符。让我们开始使用 OpenCV 实现连通分量分析。打开项目文件夹中的 basic_connected_components.py 文件,让我们开始工作:我们有两个命令行参数–image:输入图像路径–connectivity:4连通或者8连通接下来,进行图像预处理操作阈值处理以后,将得到如下图像:请注意车牌字符在黑色背景上显示为白色。但是,输入图像中也有一堆噪声也显示为前景(白色)。我们的目标是应用连通分量分析来过滤掉这些噪声区域,只留下车牌字符。但在我们开始之前,让我们先学习如何使用 cv2.connectedComponentsWithStats 函数:使用OpenCV的cv2.connectedComponentsWithStats 执行连通分量分析。我们在这里传入三个参数:阈值化后的图像4连通还是8连通数据类型(应该使用cv2.CV_32S)然后 cv2.connectedComponentsWithStats 返回一个 4 元组:检测到的唯一标签总数(即总连通分量数)一个名为labels的掩码, 掩码与我们的输入阈值图像具有相同的空间维度。对于labels中的每个位置,我们都有一个整数 ID 值,该值对应于像素所属的连通分量。您将在本节后面学习如何过滤labels矩阵。stats:每个连通分量的统计信息,包括边界框坐标和面积(以像素为单位)。每个连通分量的质心(即中心)(x,y)坐标。让我们开始解析这些数值:if/else语句说明:第一个连通分量,即ID 为 0,始终是背景。我们通常会忽略背景,但如果您需要它,请记住 ID=0 包含它。否则,如果 i > 0,那么我们知道该连通分量值得进一步探索。解析我们的统计数据和质心列表:连通分量的起始x坐标连通分量的起始y坐标连通分量的宽(w)连通分量的高(h)连通分量的质心坐标(x,y)创建一个我们可以绘制的输出图像。然后我们将当前的连通分量的边界框绘制为绿色矩形,将质心绘制为红色圆圈。我们的最终代码块演示了如何为当前连通分量创建掩码:首先在labels中找到与当前组件 ID 相等的所有位置。然后我们将结果转换为一个无符号的 8 位整数,其中背景值为 0,前景值为 255。最后显示原始图以及掩码图。第一个连通分量实际上是我们的背景。我们通常会跳过,因为通常不需要背景。 然后显示其余连通分量。对于每个连通分量,我们绘制边界框(绿色矩形)和质心/中心(红色圆圈)。 您可能已经注意到,其中一些连接的组件是车牌字符,而另一些则只是“噪音”。我们将在下一部分解决这个问题。我们之前的代码示例演示了如何使用 OpenCV 提取连接的组件,但没有演示如何过滤它们。如果我们正在构建一个自动牌照/车牌识别(ALPR/ANPR)系统,我们将获取这些字符,然后将它们传递给光学字符识别(OCR)算法进行识别。但这一切都取决于我们是否能够将字免费云主机域名符二值化并提取它们,连通分量分析使我们能够做到这一点!读到这里,这篇“OpenCV执行连通分量标记的方法是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注百云主机行业资讯频道。
这篇文章主要介绍“php传递post参数乱码如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php传递post参数乱码如何解决”文章能帮助大家解决问题。 php传递post参数乱码的解决办法:1、打开相应的源代码…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。