【发布时间】:2020-09-21 05:22:02
【问题描述】:
我正在尝试从具有黑色边框和白色填充的图像中删除文本。以下图为例。
我已经尝试了一些使用 opencv 和 skimage inpaint 的选项
import cv2
from skimage.restoration import inpaint
img = cv2.imread('Documents/test_image.png')
mask = cv2.threshold(img, 210, 255, cv2.THRESH_BINARY)[1][:,:,0]
dst = cv2.inpaint(img, mask, 7, cv2.INPAINT_TELEA)
image_result = inpaint.inpaint_biharmonic(img, mask,
multichannel=True)
cv2.imshow('image',img)
cv2.imshow('mask',mask)
cv2.imshow('dst',dst)
cv2.imshow('image_result',image_result)
cv2.waitKey(0)
看起来修复只是试图用黑色填充,因为这是它识别为在感兴趣区域周围的东西。我想做的是完全删除白色文本和黑色边框,或者其次尝试用周围颜色的更多信息来填充白色,而不仅仅是黑色。
【问题讨论】:
-
为文本周围的黑色找到一个遮罩。为白色文本查找掩码。组合面具。但 OpenCV 修复通常距离有限,最适合细划痕。它不是补丁匹配修复方法。在 Skimage/Scipy 中也是如此。
-
据您所知,python 中有没有可用的补丁匹配方法?
-
不,我不知道。
标签: python opencv image-processing scikit-image