pdf 除水印

从某网站下载了一个pdf,被打上了水印, 看起来很不舒服
在这里插入图片描述

找到水印的灰度区间

img = plt.imread(path)
img = img[:,:,1]
plt.hist(img.ravel(), 256, [1,254])

在这里插入图片描述
看出大概在 【225,240】附近

分割水印

plt.figure()
plt.subplot(1,3,1)
plt.axis('off')
plt.imshow(img,cmap='gray')

lower = 225
upper = 240
mask = cv2.inRange(img, lower, upper) 
mask = cv2.medianBlur(mask,3)
mask = cv2.medianBlur(mask,3)
plt.subplot(1,3,2)
plt.axis('off')
plt.imshow(mask,cmap='gray')

img = np.require(img, dtype='f4', requirements=['O', 'W'])
img.flags.writeable = True
img[mask==255]=255 
plt.subplot(1,3,3)
plt.axis('off')
plt.imshow(img,cmap='gray')
plt.show()

在这里插入图片描述
上图左中右分别为:原图,水印,除水印后。


上面的方法太傻了哈哈哈

直接二值化

ret,th = cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)

在这里插入图片描述
ok

再来一次腐蚀膨胀

img = cv2.resize(img, (scale*img.shape[1],scale*img.shape[0]), interpolation=cv2.INTER_CUBIC)
    
#OpenCV定义的结构元素
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3, 3))

#腐蚀图像
eroded = cv2.erode(img,kernel)
#膨胀图像
dilated = cv2.dilate(eroded,kernel)

img = dilated
img = cv2.resize(img, (int(img.shape[1]/scale),int(img.shape[0]/scale)), interpolation=cv2.INTER_LINEAR) 

在这里插入图片描述

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颹蕭蕭

白嫖?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值