使用Python簡單實(shí)現(xiàn)去除彩色水印
有一張下面這樣的彩色圖片,白底黑字上有藍(lán)色水?。?/p>
用photoshop之類軟件處理特別麻煩,上網(wǎng)找去背景網(wǎng)站消除或者相關(guān)AI工具效果也不一定好,特別是如果這種圖片有一整本數(shù)百頁的書,那就更麻煩??紤]到這種水印的顏色與文字相比差異很大,因此,可以考慮利用OpenCV將其轉(zhuǎn)換為hsv模式,這時(shí)候會發(fā)現(xiàn)水印部分的v值比文字部分的v值(可以在gimp或者photoshop中查看)大得多,用python代碼處理起來就很方便了。如下代碼可將上面的示例圖片中的藍(lán)色水印消除:
import cv2 import numpy as np def remove_color_watermark(image_path, thres): """ :param image_path: 圖片路徑 :param thres: V值的閾值 :return: 除掉水印后的圖片 """ # 讀取圖片 img = cv2.imread(image_path) if img is None: print("無法讀取圖片,請檢查圖片路徑。") return # 轉(zhuǎn)換到HSV顏色空間 hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # 某像素點(diǎn)的V值大于閾值則將其轉(zhuǎn)換為白色 img[hsv[:, :, 2] > thres ] = [255, 255, 255] return img # 請?zhí)鎿Q為你的圖片路徑 image_path = f"path\\to\\orig\\img.jpg" result = remove_color_watermark(image_path, 230) if result is not None: # 顯示原始圖片和處理后的圖片 cv2.imshow('Original Image', cv2.imread(image_path)) cv2.imshow('Processed Image', result) cv2.waitKey(0) cv2.destroyAllWindows() # 保存處理后的圖片 cv2.imwrite('processed_image.jpg', result)
處理效果如下:
似乎還是很不錯(cuò)的。下面的代碼可以將整個(gè)文件夾中所有相同水印的圖片處理后輸出為一個(gè)pdf文件:
import cv2 import os from PIL import Image def remove_color_watermark(image_path, thres): # 讀取圖片 img = cv2.imread(image_path) if img is None: print("無法讀取圖片,請檢查圖片路徑。") return # 轉(zhuǎn)換到HSV顏色空間 hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # 某像素點(diǎn)的v值大于閾值則將其轉(zhuǎn)換為白色 img[hsv[:, :, 2] > thres] = [255, 255, 255] return img if __name__ == '__main__': image_path = 'folder\\path\\to\\orig' out_path = 'path\\to\\output\\folder' thresh = 230 images = [] for filename in os.listdir(image_path): if filename.endswith(('.jpg', '.jpeg', '.png', '.bmp', '.tiff')): img = remove_color_watermark(os.path.join(image_path, filename), thresh) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # OpenCV圖片轉(zhuǎn)換為pillow圖片 pillow_image = Image.fromarray(img) print(f'{filename}已經(jīng)處理完畢。') # 加入pillow圖片數(shù)組,為輸出PDF文件做準(zhǔn)備 images.append(pillow_image) # 將處理后的圖片輸出為PDF文件 images[0].save(os.path.join(out_path,'output.pdf'), save_all=True, append_images=images[1:])
到此這篇關(guān)于使用Python簡單實(shí)現(xiàn)去除彩色水印的文章就介紹到這了,更多相關(guān)Python去除彩色水印內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python+OpenCV內(nèi)置方法實(shí)現(xiàn)行人檢測
OpenCV附帶一個(gè)預(yù)訓(xùn)練的HOG+線性SVM模型,可用于在圖像和視頻流中執(zhí)行行人檢測。本文我們將使用Opencv自帶的模型實(shí)現(xiàn)對視頻流中的行人檢測。感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2021-12-12LeetCode189輪轉(zhuǎn)數(shù)組python示例
這篇文章主要為大家介紹了LeetCode189輪轉(zhuǎn)數(shù)組python解法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08Python數(shù)據(jù)可視化之Seaborn的使用詳解
Seaborn庫是python中基于matplotlib庫的可視化工具庫,通過sns我們可以更方便地繪制出更美觀的圖表。本文將分享python基于Seaborn庫的一系列繪圖操作,感興趣的可以了解一下2022-04-04pytest利用request?fixture實(shí)現(xiàn)個(gè)性化測試需求詳解
這篇文章主要為大家詳細(xì)介紹了pytest如何利用request?fixture實(shí)現(xiàn)個(gè)性化測試需求,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-09-09使用python讀寫txt和json(jsonl)大文件的方法步驟
在Python中讀取txt和json(jsonl)大文件并保存到字典是一項(xiàng)非常常見的操作,這篇文章主要給大家介紹了關(guān)于使用python讀寫txt和json(jsonl)大文件的方法步驟,需要的朋友可以參考下2023-12-12