【问题标题】:Preserving "connectedness" of lines in an image with OpenCV使用 OpenCV 保持图像中线条的“连通性”
【发布时间】:2020-01-21 11:30:44
【问题描述】:

我正在研究手写数字识别问题,使用 OpenCV 进行预处理,使用 Keras/Tensorflow 进行推理。我在预处理中丢失某些功能时遇到问题,这些功能大致包括:

  1. 大津阈值
  2. 扩张(使手指粗细与我用来预训练神经网络的另一个数据集相同)
  3. 使用 cv2.INTER_AREA 缩小到 28x28 像素(再次匹配预训练数据)

这是一个特征损失的例子:

这意味着是 2,顶部循环中的微小间隙对于帮助将其与 9 或 8 区分开来很重要。但是我的预处理版本失去了间隙,因此循环看起来是闭合的。

我已经向preserving holes 提出了类似的问题并得到了很好的答案,尽管我认为我需要对其进行更多概括。

正如我自己的一个想法:也许有一种方法可以在膨胀操作中添加第二个更大的内核。该内核将具有与膨胀内核相同的形状,但只有轮廓(未填充)。然后,如果该轮廓触及原始图像中的任何白色像素,则取消该位置的膨胀动作。

注意:请随意发表评论,以更好的方式提出该标题(“连接性”是我所能想到的)。

【问题讨论】:

    标签: python opencv image-morphology


    【解决方案1】:

    骨架化第一个图像背景(参见https://medium.com/analytics-vidhya/skeletonization-in-python-using-opencv-b7fa16867331is there any build-in function can do skeletonization in openCV?)。在骨架和第二张图像之间使用逻辑运算。

    【讨论】:

      猜你喜欢
      • 2020-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-29
      • 1970-01-01
      • 2019-01-25
      相关资源
      最近更新 更多