使用Python簡單實現(xiàn)去除彩色水印
有一張下面這樣的彩色圖片,白底黑字上有藍色水?。?/p>

用photoshop之類軟件處理特別麻煩,上網(wǎng)找去背景網(wǎng)站消除或者相關(guān)AI工具效果也不一定好,特別是如果這種圖片有一整本數(shù)百頁的書,那就更麻煩。考慮到這種水印的顏色與文字相比差異很大,因此,可以考慮利用OpenCV將其轉(zhuǎn)換為hsv模式,這時候會發(fā)現(xiàn)水印部分的v值比文字部分的v值(可以在gimp或者photoshop中查看)大得多,用python代碼處理起來就很方便了。如下代碼可將上面的示例圖片中的藍色水印消除:
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)
# 某像素點的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)處理效果如下:

似乎還是很不錯的。下面的代碼可以將整個文件夾中所有相同水印的圖片處理后輸出為一個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)
# 某像素點的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文件做準備
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簡單實現(xiàn)去除彩色水印的文章就介紹到這了,更多相關(guān)Python去除彩色水印內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python+OpenCV內(nèi)置方法實現(xiàn)行人檢測
OpenCV附帶一個預(yù)訓練的HOG+線性SVM模型,可用于在圖像和視頻流中執(zhí)行行人檢測。本文我們將使用Opencv自帶的模型實現(xiàn)對視頻流中的行人檢測。感興趣的小伙伴可以跟隨小編一起學習一下2021-12-12
LeetCode189輪轉(zhuǎn)數(shù)組python示例
這篇文章主要為大家介紹了LeetCode189輪轉(zhuǎn)數(shù)組python解法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
Python數(shù)據(jù)可視化之Seaborn的使用詳解
Seaborn庫是python中基于matplotlib庫的可視化工具庫,通過sns我們可以更方便地繪制出更美觀的圖表。本文將分享python基于Seaborn庫的一系列繪圖操作,感興趣的可以了解一下2022-04-04
pytest利用request?fixture實現(xiàn)個性化測試需求詳解
這篇文章主要為大家詳細介紹了pytest如何利用request?fixture實現(xiàn)個性化測試需求,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下2023-09-09
使用python讀寫txt和json(jsonl)大文件的方法步驟
在Python中讀取txt和json(jsonl)大文件并保存到字典是一項非常常見的操作,這篇文章主要給大家介紹了關(guān)于使用python讀寫txt和json(jsonl)大文件的方法步驟,需要的朋友可以參考下2023-12-12

