如何在图像的特定区域应用膨胀?

时间:2018-09-27 10:28:24

标签: python opencv opencv3.1 opencv-contour

我对整个图像(img)进行了放大,但左上角的粗体文本/徽标仍未更改。每当输入图像中有徽标或一些粗体文本时,就会发生这种情况

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

现在,我想以更高的值(> 7)重新应用膨胀,但仅在该区域上。我无法在整个图像上应用具有更高价值的膨胀,因为这样会使我获得较差的结果。我想在整个图像上应用低值膨胀,然后在尚未膨胀的区域上重新应用高值膨胀

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

我该如何实现?

input image

1 个答案:

答案 0 :(得分: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))