python去除水印

python去除水印最重要的是把水印识别出来,所以如果有一个水印蒙版图片最好,如果没有,则要求水印颜色和底色不一样。本篇文章只对水印颜色和底色不一样的水印去除。

第一步,识别出来水印颜色,可以采用python相应鼠标点击事件,得出鼠标点击点图片像素:

import cv2
import numpy as np
img = cv2.imread('re.png')

a =[]
b = []
def on_EVENT_LBUTTONDOWN(event, x, y,flags, param):
    if event == cv2.EVENT_LBUTTONDOWN:
        xy = "%d,%d" % (x, y)
        a.append(x)
        b.append(y)
        cv2.putText(img, xy, (x, y), cv2.FONT_HERSHEY_PLAIN,
                    1.0, (0, 0, 0), thickness=1)
        cv2.imshow("image", img)
        print(img[x,y])

cv2.namedWindow("image")
cv2.setMouseCallback("image", on_EVENT_LBUTTONDOWN)
cv2.imshow("image", img)
cv2.waitKey(0)



第二步,得到水印颜色范围后,采用python去除水印:

import cv2
import numpy as np
path = "123.jpg"   #记得不要有中文路径

img = cv2.imread(path)
height,width = img.shape[0:2]
#开始操作
#[10,10,150]和[110,110,255]是水印颜色范围
thresh = cv2.inRange( img,np.array([10,10,150]),np.array([110,110,255]) ) 
#scan = cv2.getStructuringElement(cv2.MORPH_RECT,(3, 3))
scan = np.ones( (3,3),np.uint8)
cor = cv2.dilate(thresh,scan,iterations=2)
specular = cv2.inpaint(img,cor,5,flags=cv2.INPAINT_TELEA)
#操作结束,下面开始是输出图片的代码
cv2.imwrite('len6.png',specular )

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值