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

标签 python opencv contour

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

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

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

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

我怎样才能做到这一点?

input image

最佳答案

如果你想对一个矩形框应用操作,你可以通过索引传入该区域。

所以首先扩大整个图像:

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))

关于python - 如何在图像的特定区域应用膨胀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52534907/

相关文章:

python - RabbitMQ IOError : Socket closed

运行其他命令时的 Python 后台循环

python - 是否有可能以返回之类的方式结束 python 模块导入?

java - Android 上使用 OpenCV 在实时相机预览中进行实时 Logo 检测

python - Python 3.x 中的日志记录错误 : TypeError: a bytes-like object is required, 而不是 'str'

opencv - 图像处理中的形状检测

python - 无法使用 OpenCV3 找到轮廓,但代码可在 OpenCV2 上运行

python - OpenCV 绘制轮廓错误断言失败

opencv - 在 OpenCV 中关闭等高线曲线

c++ - 轮廓区域未显示所有相关区域