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('写入完毕')

一个一个解决

316 声望
68 粉丝
0 条评论
推荐阅读
Python3.10新特性之match语句
在Python 3.10发布之前,Python是没有类似于其他语言中switch语句的,要实现类似的功能最简单的方法就是通过if ... elif ... else ...语句,但是这样毕竟不够优雅,不够“Pythonic”更推荐的做法是通过字典(dict)实...

瑞09081阅读 332

jumpserver api创建资产
jumpserver apidomain+/api/docspython {代码...} GO {代码...}

台湾省委书记阅读 637

封面图
基于OpenCV的人脸、视频、文字检测以及识别的项目(一 项目准备)
numpy是一个定义了数值数组和矩阵类型和它们的基本运算的语言扩展,OpenCV引用了numpy模块,所以安装OpenCV之前必须安装numpy。numpy:第一步:先去网站下载对应的numpy版本,这个numpy要对应你的python版本号 下...

胡子老爷爷阅读 530

人工智能AI聊天ChatGPT新接口模型gpt-3.5-turbo闪电更新,成本降90%,Python3.10接入
北国春迟,春寒料峭略带阴霾,但ChatGPT新接口模型gpt-3.5-turbo的更新为我们带来了一丝暖意,使用成本更加亲民,比高端产品ChatGPT Plus更实惠也更方便,毕竟ChatGPT Plus依然是通过网页端来输出,Api接口是以to...

刘悦的技术博客阅读 447

封面图
影片自由,丝滑流畅,Docker容器基于WebDav协议通过Alist挂载(百度网盘/阿里云盘)Python3.10接入
使用过NAS(Network Attached Storage)的朋友都知道,它可以通过局域网将本地硬盘转换为局域网内的“网盘”,简单理解就是搭建自己的“私有云”,但是硬件和网络成本都太高了,有点可望而不可及的意思。Alist开源库则...

刘悦的技术博客阅读 446

封面图
如何创建一个超时后不会被kill的python子进程
在subprocess之前,创建一个新进程的方式有很多种,如os.system()、os.spawn*方法等。为了统一创建进程的方式,python社区提议使用subprocess模块作为创建进程的标准方式,用来替换os.system和os.spawn*等方式。

namedlock阅读 360

python 获取Azure 下的虚拟机列表
事实上,微软Azure并没有一个所谓的“API访问凭证”的概念,我们需要通过它的“Active Directory”中的应用程序Client信息来进行API的访问。而且相较其它云厂商而言,微软Azure的API访问凭证略显复杂,且需要通过多个...

台湾省委书记阅读 309

封面图

一个一个解决

316 声望
68 粉丝
宣传栏