我想自动化将一组图像输入到数字生成系统中的任务&在此之前,我希望删除这些图像中常见的点水印。
我尝试使用google,tesseract & abby reader,但我发现不包含水印的图像部分可以很好地识别,但带水印的部分几乎不可能识别。
我想使用图像处理来删除水印。我已经尝试了一些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)
不同寻常的是,我不知道这张图片的水印是由多少像素组成的。有没有办法去掉这个水印,或者把数字变暗,通过编码降低水印的暗度?
这是带水印的图像
发布于 2019-07-15 23:29:01
我使用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()
https://stackoverflow.com/questions/57038499
复制相似问题