python cv2去水印(百度百科)

原理是:用2张图片进行对比
需要注意 我这个ddd.jpg是自己非专业P的图,正常应该是都是黑的背景然后logo和原图一样大小,2张图片需要一样的像素长宽

import cv2
'''
两个图片对比
去水印
'''
def get_water():
    # 黑底白字
    src = cv2.imread('yuan111.jpg')  # 默认的彩色图(IMREAD_COLOR)方式读入原始图像
    # black.jpg
    mask = cv2.imread('ddd.jpg', cv2.IMREAD_GRAYSCALE)  # 灰度图(IMREAD_GRAYSCALE)方式读入水印蒙版图像
    # 参数:目标修复图像; 蒙版图(定位修复区域); 选取邻域半径; 修复算法(包括INPAINT_TELEA/INPAINT_NS, 前者算法效果较好)
    dst = cv2.inpaint(src, mask, 3, cv2.INPAINT_NS)

    cv2.imwrite('result111.jpg', dst)

get_water()

yuan111.jpg
ddd.jpg
result111.jpg
最近找到了一个更好的方法专门针对去除百度水印的
方法如下

import requests
# 去除?后面的参数为无水印图片地址
url = "https://bkimg.cdn.bcebos.com/pic/43a7d933c895d143509c3b8377f082025baf07ac"
# 带有水印的图片地址
# url = "https://bkimg.cdn.bcebos.com/pic/43a7d933c895d143509c3b8377f082025baf07ac?x-bce-process=image/watermark,image_d2F0ZXIvYmFpa2U5Mg==,g_7,xp_5,yp_5"
response = requests.request("GET", url)
# print(response.text)
content = response.content
with open(f'43a7d933c895d143509c3b8377f082025baf07ac,jpg', 'wb',) as f:
    f.write(content)
    f.close()
    print('写入完毕')

你可能感兴趣的:(python3.x水印)