最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

運(yùn)用python去除圖片水印

 更新時(shí)間:2021年08月20日 15:42:03   作者:程序員啟航  
本文介紹了如何運(yùn)用python去除圖片的水印,文中使用圖片以及代碼詳細(xì)的介紹了兩種去除的方法,感興趣的朋友可以自己參考一下

由于圖片水印的種類(lèi)有很多,今天我們先講最簡(jiǎn)單的一種。

Image

即上圖中的①類(lèi)水印,這種水印存在白色背景上的文檔里,水印是灰色,需要保留的文字是黑色。

這種通常可以進(jìn)行簡(jiǎn)單的亮度/對(duì)比度轉(zhuǎn)換,直到水印消失并降低亮度以進(jìn)行補(bǔ)償[1]。參考別人的方法,我發(fā)現(xiàn)可以用多種方法去除水印。大致原理比較相似,下面先講OpenCV的方法。

OpenCV + Numpy

本方法需要使用的庫(kù):cv2、numpy。cv2是基于OpenCV的圖像處理庫(kù),可以對(duì)圖像進(jìn)行腐蝕,膨脹等操作;Numpy這是一個(gè)強(qiáng)大的處理矩陣和維度運(yùn)算的庫(kù)。

函數(shù)簡(jiǎn)介

介紹一下cv2的三個(gè)基本函數(shù):使用

img = cv2.imread('test.png')
 
cv2.imshow('test.png',img)
cv2.waitKey(0)
 
cv2.imwrite('test_2.png', img)

對(duì)于Numpy呢,則要用到np.clip(),它是一個(gè)截取函數(shù),用于截取數(shù)組中小于或者大于某值的部分,并使得被截取部分等于固定值。

np.clip(a, a_min, a_max, out=None):

具體用法:

Image

可以看到,數(shù)組x中的所有數(shù)限定到范圍0和5之間。為啥要介紹這些函數(shù)呢,接著往下看。

色彩轉(zhuǎn)換

回到本文一開(kāi)始,我們想去除文檔圖片中的水印。

上圖中我選取了三個(gè)點(diǎn),這三個(gè)像素點(diǎn)分別對(duì)應(yīng)背景白色、黑色字體以及灰色的水印。

我們現(xiàn)在要做的事,就是想辦法把水印轉(zhuǎn)換成白色背景。換言之,就是把圖片中[217,217,217]的像素點(diǎn)轉(zhuǎn)換成[255,255,255]。

當(dāng)然這個(gè)[217,217,217]也不是固定的,只是一個(gè)范圍。為了方便調(diào)整,我選取了一些像素點(diǎn),做了一個(gè)線性回歸。

希望把圖片整體的像素顏色做一個(gè)改變,原有黑色字體盡量跟原來(lái)一致,而水印部分則一定要≥255,然后就可以通過(guò)np.clip()限定區(qū)間,使之都變成[255,255,255]。

Image

說(shuō)干就干

import cv2
import numpy as np
 
img = cv2.imread('test.png')
 
new = np.clip(1.4057577998008846*img-38.33089999653017, 0, 255).astype(np.uint8)
 
cv2.imwrite('removed.png', new)

下面我們看看調(diào)整后的效果(左側(cè)是轉(zhuǎn)換前,右側(cè)是轉(zhuǎn)換后)。

Image

左:轉(zhuǎn)換前 右:轉(zhuǎn)換后

處理效果還是不錯(cuò)的,說(shuō)明對(duì)于這類(lèi)文檔圖片水印,通過(guò)幾行Python代碼就可以輕松去除水印。

不過(guò)通過(guò)線性回歸改變整體圖片顏色,也會(huì)影響原有的黑色文本,導(dǎo)致其顏色發(fā)生了微微變化。

那我們能不能簡(jiǎn)單粗暴一點(diǎn)!只改變水印的顏色呢?

也可以試試。

PIL  + itertools

PIL也是一個(gè)Python 圖像處理庫(kù),其中Image模塊是在Python PIL圖像處理中常見(jiàn)的模塊,對(duì)圖像進(jìn)行基礎(chǔ)操作的功能基本都包含于此模塊內(nèi)。

itertools 之前更是被我們稱(chēng)為一個(gè)零差評(píng)的Python內(nèi)置庫(kù)。其中itertools.product用來(lái)產(chǎn)生多個(gè)列表和迭代器的(積)。

還是跟之前一個(gè)原理,我們希望將圖片中[217,217,217]的像素點(diǎn)轉(zhuǎn)換成[255,255,255]。

那就簡(jiǎn)單粗暴一點(diǎn),也就是像素值相加大概600(217+217+217)以上的像素點(diǎn),都改成[255,255,255]就好了。

from itertools import product
from PIL import Image
 
img = Image.open('test.png')
width, height = img.size
for pos in product(range(width), range(height)):
    if sum(img.getpixel(pos)[:3]) > 600:
        img.putpixel(pos, (255,255,255))
img.save('removed_1.png')

運(yùn)行結(jié)果,對(duì)比一下。

Image

左:轉(zhuǎn)換前 右:轉(zhuǎn)換后

與第一種方法對(duì)比,肉眼也沒(méi)看出來(lái)太明顯差別。

那大家就喜歡那種方法就用哪個(gè)吧!

到此這篇關(guān)于運(yùn)用python去除圖片水印的文章就介紹到這了,更多相關(guān)python去除圖片水印內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python文件排序的方法總結(jié)

    python文件排序的方法總結(jié)

    在本篇內(nèi)容里小編給各位整理的是一篇關(guān)于python文件排序的方法總結(jié),有需要的朋友們可以參考下。
    2020-09-09
  • 詳細(xì)解讀Python字符串的使用與f-string

    詳細(xì)解讀Python字符串的使用與f-string

    這篇文章主要介紹了詳細(xì)解讀Python字符串的使用與f-string,在?Python?中,引號(hào)內(nèi)的任何內(nèi)容都是字符串,但是字符串也有很多的用法,需要的朋友一起來(lái)看看吧
    2023-04-04
  • 使用PyTorch實(shí)現(xiàn)去噪擴(kuò)散模型的完整代碼

    使用PyTorch實(shí)現(xiàn)去噪擴(kuò)散模型的完整代碼

    在本文中,我們將深入研究DDPM的復(fù)雜性,涵蓋其訓(xùn)練過(guò)程,包括正向和逆向過(guò)程,并探索如何執(zhí)行采樣,在整個(gè)探索過(guò)程中,我們將使用PyTorch從頭開(kāi)始構(gòu)建DDPM,并完成其完整的訓(xùn)練,需要的朋友可以參考下
    2024-01-01
  • 關(guān)于微信小程序爬蟲(chóng)token自動(dòng)更新問(wèn)題

    關(guān)于微信小程序爬蟲(chóng)token自動(dòng)更新問(wèn)題

    本文主要介紹了關(guān)于微信小程序爬蟲(chóng)關(guān)于token自動(dòng)更新問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Python采集大學(xué)教務(wù)系統(tǒng)成績(jī)單實(shí)戰(zhàn)示例

    Python采集大學(xué)教務(wù)系統(tǒng)成績(jī)單實(shí)戰(zhàn)示例

    這篇文章主要為大家介紹了Python采集大學(xué)教務(wù)系統(tǒng)成績(jī)單實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Python編程pytorch深度卷積神經(jīng)網(wǎng)絡(luò)AlexNet詳解

    Python編程pytorch深度卷積神經(jīng)網(wǎng)絡(luò)AlexNet詳解

    AlexNet和LeNet的架構(gòu)非常相似。這里我們提供了一個(gè)稍微精簡(jiǎn)版本的AlexNet,去除了當(dāng)年需要兩個(gè)小型GPU同時(shí)運(yùn)算的設(shè)計(jì)特點(diǎn)
    2021-10-10
  • 基于python的圖片修復(fù)程序(實(shí)現(xiàn)水印去除)

    基于python的圖片修復(fù)程序(實(shí)現(xiàn)水印去除)

    這篇文章主要給大家介紹了關(guān)于python圖片修復(fù)程序的相關(guān)資料,可以用于實(shí)現(xiàn)圖片中水印去除,主要利用的是OpenCV這個(gè)框架實(shí)現(xiàn)的,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧
    2018-06-06
  • python神經(jīng)網(wǎng)絡(luò)使用Keras進(jìn)行模型的保存與讀取

    python神經(jīng)網(wǎng)絡(luò)使用Keras進(jìn)行模型的保存與讀取

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)使用Keras進(jìn)行模型的保存與讀取,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python中PDF轉(zhuǎn)Word的多種實(shí)現(xiàn)方法

    Python中PDF轉(zhuǎn)Word的多種實(shí)現(xiàn)方法

    在日常辦公和數(shù)據(jù)處理中,經(jīng)常需要將PDF文檔轉(zhuǎn)換為Word文檔,以便進(jìn)行編輯、修改或格式調(diào)整,Python作為一種強(qiáng)大的編程語(yǔ)言,提供了多種庫(kù)和工具來(lái)實(shí)現(xiàn)這一功能,以下是對(duì)Python中PDF轉(zhuǎn)Word技術(shù)的詳細(xì)介紹,需要的朋友可以參考下
    2025-01-01
  • Selenium之模擬登錄鐵路12306的示例代碼

    Selenium之模擬登錄鐵路12306的示例代碼

    這篇文章主要介紹了Selenium之模擬登錄鐵路12306的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評(píng)論

葫芦岛市| 安宁市| 景谷| 武陟县| 新绛县| 通江县| 玛纳斯县| 随州市| 赣州市| 林芝县| 江西省| 乌恰县| 靖远县| 内黄县| 高尔夫| 汽车| 酒泉市| 元阳县| 策勒县| 电白县| 长汀县| 石林| 泽普县| 英山县| 宿州市| 黔西| 福鼎市| 隆尧县| 武隆县| 孙吴县| 从江县| 高唐县| 平谷区| 沾化县| 锦屏县| 晋州市| 鹿邑县| 嘉黎县| 阿合奇县| 二连浩特市| 泸西县|