我想自动化将一组图像输入到数字生成系统中的任务,而在此之前,我想删除在这些图像中常见的点状水印。
我尝试使用google,tesseract和abby阅读器,但是发现不包含水印的图像部分可以被很好地识别,但是带有水印的部分几乎无法识别。
我想使用图像处理删除水印。我已经尝试过一些opencv,python,matlab等示例代码,但都不符合我的要求...
这是我尝试过的Python示例代码,它可以更改亮度和暗度:
import cv2
import numpy as np
img = cv2.imread("d:\\Docs\\WFH_Work\\test.png")
alpha = 2.5
beta = -250
new = alpha * img + beta
new = np.clip(new, 0, 255).astype(np.uint8)
cv2.imshow("my window", new)
通常,我不知道该图像的水印包括多少个像素。有没有办法摆脱此水印或通过代码使数字变暗并降低水印的暗度?
这是水印图像
答案 0 :(得分:0)
我正在使用dilate
删除图形,然后找到边缘以检测水印。通过水印内的主要灰色将其删除
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('test.png', 0)
kernel = np.ones((10,10),np.uint8)
dilation = cv2.dilate(img,kernel,iterations = 1)
erosion = cv2.erode(dilation,kernel,iterations = 1)
plt.imshow(erosion, cmap='gray')
plt.show()
#contour
gray = cv2.bilateralFilter(erosion, 11, 17, 17)
edged = cv2.Canny(gray, 30, 200)
plt.imshow(edged, cmap='gray')
plt.show()