【问题标题】:How to apply dilation on particular region of the image?如何在图像的特定区域应用膨胀?
【发布时间】:2019-03-03 05:53:54
【问题描述】:

我已对整个图像 (img) 应用了膨胀,但左上角的粗体文本/徽标仍未被触及。每当输入图像中有徽标或一些粗体文本时都会发生这种情况

dilated_img = cv2.dilate(img, np.ones((7, 7), np.uint8))

现在我想重新应用具有更高价值 (> 7) 的膨胀,但仅限于该区域。我不能在整个图像上应用具有更高价值的膨胀,因为它会给我带来糟糕的结果。我想对整个图像应用低值膨胀,然后在没有膨胀的区域重新应用高值膨胀

(这应该在每张图像上推广,而不仅仅是这张)

我怎样才能做到这一点?

【问题讨论】:

    标签: python opencv opencv3.1 opencv-contour


    【解决方案1】:

    如果要对矩形框应用操作,可以按索引传入区域。

    所以首先放大整个图像:

    dilated_img = cv2.dilate(img, np.ones((5, 5), np.uint8))
    

    然后覆盖需要更高膨胀的区域:

    dilated_img[10:50, 30:40] = cv2.dilate(img[10:50, 30:40], np.ones((20, 20), np.uint8))
    

    【讨论】:

    • 是的,这将适用于这个特定的图像。但是我怎样才能找到应用第二次膨胀的区域呢?
    • 检测带有粗体文本的区域是一个更复杂的问题。也许尝试阈值,扩大直到非粗体被删除。这将删除瘦字符,只留下粗体。后跟一个大的平滑过滤器,在有粗体字符的地方给出平滑的正响应。任何超过阈值的区域都可能有粗体文本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多