
python圖片去水印完整代碼

以下是一個使用Python和Pillow庫實現圖片去水印的完整示例代碼,支持固定位置水印的透明度調整:```python導入所需庫from PIL import Ima...
以下是一個使用Python和Pillow庫實現圖片去水印的完整示例代碼,支持固定位置水印的透明度調整:
```python
導入所需庫
from PIL import Image, ImageDraw, ImageEnhance
def remove_watermark(input_path, output_path, watermark_path, position=(800, 600), alpha=0.3):
"""
移除圖片中的固定位置水印
參數:
input_path: 原始圖片路徑
output_path: 處理后圖片路徑
watermark_path: 水印圖片路徑
position: (x, y) 水印在圖片中的位置
alpha: 透明度系數(0-1,值越小越透明)
"""
打開原始圖片
img = Image.open(input_path)
img_size = img.size
打開水印圖片并轉換為RGBA模式wm = Image.open(watermark_path).convert('RGBA')
wm_size = wm.size
創建全透明背景
background = Image.new('RGBA', img_size, (255,255,255,0))
繪制調整后的水印
draw = ImageDraw.Draw(background)
調整透明度
wm.putalpha(wm.split()[-1] alpha)
繪制水印
background.paste(wm, position, wm)
合并圖片
result = Image.composite(background, img, background)
保存結果
result.save(output_path)
使用示例
if name == "main":
配置參數
input_img = "input.jpg" 原始圖片
output_img = "output.jpg" 輸出圖片
watermark_img = "watermark.png" 水印圖片
position = (800, 600) 水印位置(右下角示例)
alpha = 0.3 透明度系數
執行處理remove_watermark(input_img, output_img, watermark_img, position, alpha)
print("Watermark removed successfully!")
```
代碼說明:
- 依賴庫:使用Pillow(PIL)進行圖像處理
- 核心邏輯:
- 讀取原始圖片和水印圖片
- 創建全透明背景
- 調整水印透明度(通過alpha參數控制)
- 在指定位置繪制處理后的水印
- 合成最終圖片并保存
- 適用場景:
- 固定位置的水印(如右下角)
- PNG透明背景水印
- 半透明水印處理
支持多種水印類型:
- 半透明水印:通過調整alpha參數(0-1)控制透明度
- 固定位置水印:通過position參數指定坐標
- 多層水印:可以多次調用函數處理不同位置的水印
改進建議:
- 自動檢測水印位置:需要圖像識別技術(如OpenCV邊緣檢測)
- 智能透明度調整:根據圖像亮度動態調整alpha值
- 支持更多格式:添加格式轉換邏輯(如JPG轉PNG)
- 批量處理:添加多文件處理循環
使用方法:
- 安裝依賴:
pip install Pillow
- 準備文件:
- input.jpg:需要去除水印的圖片
- watermark.png:透明背景的水印圖片
- 運行腳本:
python remove_watermark.py
注意事項:
- 水印圖片需要透明背景(PNG格式)
- 透明度系數alpha值越小效果越明顯
- 處理后的圖片會保留原始圖片內容
- 對于復雜水印可能需要更高級的處理方法
如果需要處理更復雜的水印(如文字水印、動態水印等),可以結合以下技術:
1. OpenCV進行圖像預處理
2. 使用Tesseract進行文字識別
3. 深度學習模型(如U-Net)進行水印檢測
4. GPU加速(使用CUDA/OpenCL)
根據具體需求,可以選擇不同的實現方案。
本文鏈接:http://www.wzyaohuidianqi.cn/gong/439858.html
