主頁 > 知識庫 > 運用python去除圖片水印

運用python去除圖片水印

熱門標簽:外呼并發(fā)線路 宿遷星美防封電銷卡 湛江智能外呼系統(tǒng)廠家 ai電銷機器人源碼 百度地圖標注沒有了 西藏房產智能外呼系統(tǒng)要多少錢 地圖標注審核表 長沙高頻外呼系統(tǒng)原理是什么 ai電話機器人哪里好

由于圖片水印的種類有很多,今天我們先講最簡單的一種。

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

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

OpenCV + Numpy

本方法需要使用的庫:cv2、numpy。cv2是基于OpenCV的圖像處理庫,可以對圖像進行腐蝕,膨脹等操作;Numpy這是一個強大的處理矩陣和維度運算的庫。

函數(shù)簡介

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

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

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

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

具體用法:

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

色彩轉換

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

上圖中我選取了三個點,這三個像素點分別對應背景白色、黑色字體以及灰色的水印。

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

當然這個[217,217,217]也不是固定的,只是一個范圍。為了方便調整,我選取了一些像素點,做了一個線性回歸。

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

說干就干

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)

下面我們看看調整后的效果(左側是轉換前,右側是轉換后)。

左:轉換前 右:轉換后

處理效果還是不錯的,說明對于這類文檔圖片水印,通過幾行Python代碼就可以輕松去除水印。

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

那我們能不能簡單粗暴一點!只改變水印的顏色呢?

也可以試試。

PIL  + itertools

PIL也是一個Python 圖像處理庫,其中Image模塊是在Python PIL圖像處理中常見的模塊,對圖像進行基礎操作的功能基本都包含于此模塊內。

itertools 之前更是被我們稱為一個零差評的Python內置庫。其中itertools.product用來產生多個列表和迭代器的(積)。

還是跟之前一個原理,我們希望將圖片中[217,217,217]的像素點轉換成[255,255,255]。

那就簡單粗暴一點,也就是像素值相加大概600(217+217+217)以上的像素點,都改成[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')

運行結果,對比一下。

左:轉換前 右:轉換后

與第一種方法對比,肉眼也沒看出來太明顯差別。

那大家就喜歡那種方法就用哪個吧!

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

您可能感興趣的文章:
  • 拒絕盜圖!教你怎么用python給圖片加水印
  • 基于python的圖片修復程序(實現(xiàn)水印去除)
  • 利用Python+OpenCV三步去除水印
  • Python編程OpenCV和Numpy圖像處理庫實現(xiàn)圖片去水印

標簽:普洱 南平 漯河 海南 林芝 寧夏 盤錦 大同

巨人網絡通訊聲明:本文標題《運用python去除圖片水印》,本文關鍵詞  運用,python,去除,圖片,水印,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《運用python去除圖片水印》相關的同類信息!
  • 本頁收集關于運用python去除圖片水印的相關信息資訊供網民參考!
  • 推薦文章