首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从一组相似的图像中删除点水印?

如何从一组相似的图像中删除点水印?
EN

Stack Overflow用户
提问于 2019-07-15 19:10:05
回答 1查看 254关注 0票数 1

我想自动化将一组图像输入到数字生成系统中的任务&在此之前,我希望删除这些图像中常见的点水印。

我尝试使用google,tesseract & abby reader,但我发现不包含水印的图像部分可以很好地识别,但带水印的部分几乎不可能识别。

我想使用图像处理来删除水印。我已经尝试了一些opencv,python,matlab等的示例代码,但没有一个符合我的要求……

下面是我尝试过的Python示例代码,它可以更改亮度和暗度:

代码语言:javascript
运行
复制
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)

不同寻常的是,我不知道这张图片的水印是由多少像素组成的。有没有办法去掉这个水印,或者把数字变暗,通过编码降低水印的暗度?

这是带水印的图像

EN

回答 1

Stack Overflow用户

发布于 2019-07-15 23:29:01

我使用dilate去除图形,然后找到边缘来检测水印。通过主灰度内水印将其移除

代码语言:javascript
运行
复制
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()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57038499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档