国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Python批量圖片去水印的方法

瀏覽:3日期:2022-06-18 11:36:03

​平常工作中,有時為了采用網(wǎng)絡(luò)的一些素材,但這些素材往往被打了水印,如果我們不懂PS就無法去掉水印,或者無法批量去掉水印。這些就很影響我們的工作效率。

今天我們就一起來,用Python + OpenCV三步去除水印,去水印需要使用的庫:cv2、numpy。cv2是基于OpenCV的圖像處理庫,可以對圖像進(jìn)行腐蝕,膨脹等操作;numpy這是一個強(qiáng)大的處理矩陣和維度運算的庫。

圖片去水印原理

1、標(biāo)定噪聲的特征,使用cv2.inRange二值化標(biāo)識噪聲對圖片進(jìn)行二值化處理,具體代碼:cv2.inRange(img, np.array([200, 200, 240]), np.array([255, 255, 255])),把[200, 200, 200]~[255, 255, 255]以外的顏色處理為0;

2、使用OpenCV的dilate方法,擴(kuò)展特征的區(qū)域,優(yōu)化圖片處理效果;

3、使用inpaint方法,把噪聲的mask作為參數(shù),推理并修復(fù)圖片。

去掉右下角的水印步驟

1、從源圖片,截取右下角部分,另存為新圖片;

2、識別水印,顏色值為:[200, 200, 200]~[255, 255, 255]

3、去掉水印,還原圖片;

4、把源圖片、去掉水印的新圖片,進(jìn)行重疊合并;

實現(xiàn)代碼

效果對比

import cv2import numpy as npfrom PIL import Imageimport 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] # 裁剪坐標(biāo)為[y0:y1, x0:x1]cv2.imwrite(newPath, cropped)imgSY = cv2.imread(newPath,1)​#圖片二值化處理,把[200,200,200]-[250,250,250]以外的顏色變成0thresh = cv2.inRange(imgSY,np.array([200,200,200]),np.array([250,250,250]))#創(chuàng)建形狀和尺寸的結(jié)構(gòu)元素kernel = np.ones((3,3),np.uint8)#擴(kuò)展待修復(fù)區(qū)域hi_mask = cv2.dilate(thresh,kernel,iterations=10)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)

實現(xiàn)效果如下圖,這個默認(rèn)是去掉白色右下角的水印,大家可以根據(jù)自己的需求進(jìn)行更改。

Python批量圖片去水印的方法

到此這篇關(guān)于Python批量圖片去水印的示例代碼的文章就介紹到這了,更多相關(guān)Python批量圖片去水印的示例代碼內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 大厂| 溆浦县| 新绛县| 新蔡县| 邵阳县| 特克斯县| 康马县| 开阳县| 衡东县| 公主岭市| 梨树县| 大同县| 班戈县| 邹平县| 富宁县| 沂水县| 江北区| 夹江县| 南涧| 陇西县| 抚松县| 太谷县| 红桥区| 明光市| 崇义县| 郎溪县| 黔西| 阿拉善盟| 永胜县| 平原县| 民乐县| 犍为县| 万载县| 棋牌| 江永县| 子长县| 闸北区| 龙南县| 雅安市| 柘城县| 郎溪县|