gpt4 book ai didi

opencv - 连接字符的分割

转载 作者:太空宇宙 更新时间:2023-11-03 20:48:18 25 4
gpt4 key购买 nike

如果字符是相连的,如何分割?我刚刚尝试使用带距离变换的分水岭 (http://opencv-code.com/tutorials/count-and-segment-overlapping-objects-with-watershed-and-distance-transform/ ) 来查找组件的数量,但它似乎表现不佳。

  1. 它要求对象在阈值之后分离才能表现良好。

话虽如此,如何有效分割字符?需要帮助/想法。

slightly connected附件是二进制图像的例子。

heavily connected一个高度连接的例子。

回答:

@mmgp 这是我的 o/p

BP o/p

最佳答案

我相信这里有两种方法:1) 重新执行导致您现在拥有这些图像的二值化步骤; 2)根据图像大小考虑不同的可能性。让我们关注给出问题的第二种方法。

在最小的图像中,只有两个数字是相连的,而且只有在考虑 8 连通性时才会发生这种情况。如果您将图像处理为 4-connected,则无事可做,因为没有两个连接的组件应该分开。如下所示。在考虑 8 连通性时,只需找到与另一个点相连的点即可获得正确的图像。在这种情况下,只有两个这样的点,通过删除它们,我们断开了两位数“1”。

enter image description here enter image description here

在您的其他图像中,情况已不再如此。而且我没有一种简单的方法可以应用于较小的图像而不会使它变得更糟。但是,实际上,我们可以考虑将两个图像放大到某个共同的大小,使用最近邻插值,这样我们就不会偏离二进制表示。通过调整两个图像的大小,使它们的宽度等于 200,并保持纵横比,我们可以对它们应用以下形态学方法。先做间苗:

enter image description here

现在,可以看出,形态分支点是连接你的数字的分支点(最左边的数字“六”处也有另一个分支点,将被处理)。我们可以提取这些分支点并使用 2*height+1 的垂直线应用形态学闭合(高度来自您的图像),因此无论点在哪里,它的闭合都会产生一条完整的垂直线。由于您的图像不再那么小,因此这条线不需要 1 点宽,事实上我考虑了 6 点宽的线。由于一些分支点在水平方向上很接近,所以这个闭合操作会将它们连接在同一条垂直线上。如果一个分支点不靠近另一个,则执行侵 eclipse 将删除一条垂直线。并且,通过这样做,我们消除了与左边数字 6 相关的分支点。应用这些步骤后,我们在左侧获得以下图像。从中减去原始图像,我们得到右边的图像。

enter image description here enter image description here

如果我们对“8011”图像应用这些相同的步骤,我们将得到与开始时完全相同的图像。但这仍然很好,因为应用删除仅在 8-连通性中连接的点的简单方法,我们像以前一样获得分离的组件。

关于opencv - 连接字符的分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14211413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com