Python批量图片去水印的方法
Python批量图⽚去⽔印的⽅法
平常⼯作中,有时为了采⽤⽹络的⼀些素材,但这些素材往往被打了⽔印,如果我们不懂PS就⽆法去掉⽔印,或者⽆法批量去掉⽔印。这些就很影响我们的⼯作效率。
今天我们就⼀起来,⽤Python + OpenCV三步去除⽔印,去⽔印需要使⽤的库:cv2、numpy。cv2是基于OpenCV的图像处理库,可以对图像进⾏腐蚀,膨胀等操作;numpy这是⼀个强⼤的处理矩阵和维度运算的库。
图⽚去⽔印原理
1、标定噪声的特征,使⽤cv2.inRange⼆值化标识噪声对图⽚进⾏⼆值化处理,具体代码:cv2.inRange(img, np.array([200, 200, 240]), np.array([255, 255, 255])),把[200, 200, 200]~[255, 255, 255]以外的颜⾊处理为0;
2、使⽤OpenCV的dilate⽅法,扩展特征的区域,优化图⽚处理效果;
3、使⽤inpaint⽅法,把噪声的mask作为参数,推理并修复图⽚。
去掉右下⾓的⽔印步骤
1、从源图⽚,截取右下⾓部分,另存为新图⽚;
2、识别⽔印,颜⾊值为:[200, 200, 200]~[255, 255, 255]
3、去掉⽔印,还原图⽚;黔西南中考分数查询
4、把源图⽚、去掉⽔印的新图⽚,进⾏重叠合并;
上海周边旅游实现代码
效果对⽐
import cv2
import numpy as np
from PIL import Image
import os
dir = os.getcwd()
path = "1.jpg"
newPath = "new.jpg"
img=cv2.imread(path,1)
hight,width,depth=img.shape[0:3]
#截取
cropped = img[int(hight*0.8):hight, int(width*0.7):width]  # 裁剪坐标为[y0:y1, x0:x1]
cv2.imwrite(newPath, cropped)
imgSY = cv2.imread(newPath,1)
成长感言#图⽚⼆值化处理,把[200,200,200]-[250,250,250]以外的颜⾊变成0
thresh = cv2.inRange(imgSY,np.array([200,200,200]),np.array([250,250,250]))
#创建形状和尺⼨的结构元素
kernel = np.ones((3,3),np.uint8)
#扩展待修复区域
hi_mask = cv2.dilate(thresh,kernel,iterations=10)
2020年法定节假日安排specular = cv2.inpaint(imgSY,hi_mask,5,flags=cv2.INPAINT_TELEA)
cv2.imwrite(newPath, specular)
夜曲 周杰伦#覆盖图⽚
imgSY = Image.open(newPath)
img = Image.open(path)
img.paste(imgSY, (int(width*0.7),int(hight*0.8),width,hight))
快捷指令怎么打开允许不受信任的快捷指令img.save(newPath)
实现效果如下图,这个默认是去掉⽩⾊右下⾓的⽔印,⼤家可以根据⾃⼰的需求进⾏更改。
到此这篇关于Python批量图⽚去⽔印的⽰例代码的⽂章就介绍到这了,更多相关Python批量图⽚去⽔印的⽰例代码内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。