當(dāng)前位置:首頁 > 工具 > 正文

python去水印代碼

python去水印代碼

以下是幾種Python去除水印的常見方法及示例代碼,根據(jù)水印類型和復(fù)雜度進(jìn)行分類:一、基礎(chǔ)方法(適用于簡單固定水印)1. 直接蒙版覆蓋(需已知蒙版圖像)```pytho...

以下是幾種Python去除水印的常見方法及示例代碼,根據(jù)水印類型和復(fù)雜度進(jìn)行分類:

一、基礎(chǔ)方法(適用于簡單固定水印)

1. 直接蒙版覆蓋(需已知蒙版圖像)

```python

import cv2

import numpy as np

def remove_watermark簡單蒙版(input_path, output_path, mask_path):

讀取原圖

img = cv2.imread(input_path)

讀取蒙版(黑色區(qū)域?yàn)橥该鳎?/p>

mask = cv2.imread(mask_path, 0) 通道數(shù)應(yīng)為1

蒙版二值化處理

mask = cv2.threshold(mask, 0, 255, cv2.THRESH_BINARY)[1]

應(yīng)用蒙版

result = cv2.bitwise_and(img, img, mask=mask)

保存結(jié)果

cv2.imwrite(output_path, result)

使用示例

remove_watermark簡單蒙版("input.jpg", "output.jpg", "mask.png")

```

2. 均值替換法(適用于半透明水印)

```python

import cv2

def remove_watermark均值替換(input_path, output_path, confidence_threshold=0.8):

img = cv2.imread(input_path)

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

 檢測高對比度區(qū)域(假設(shè)水印具有明顯顏色差異)

kernel = np.ones((3,3), np.uint8)

dilated = cv2.dilate(gray, kernel, iterations=1)

diff = cv2.absdiff(gray, dilated)

二值化檢測區(qū)域

_, mask = cv2.threshold(diff, 50, 255, cv2.THRESH_BINARY)

應(yīng)用均值替換

mean_val = np.mean(img[mask==255], axis=(0,1))

result = cv2.bitwise_and(img, img, mask=mask)

cv2.add(result, cv2ScalarAll(mean_val), result)

cv2.imwrite(output_path, result)

```

二、進(jìn)階方法(適用于復(fù)雜水印)

1. 基于OpenCV的邊緣檢測法

```python

import cv2

import numpy as np

def remove_watermark邊緣檢測(input_path, output_path):

img = cv2.imread(input_path)

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

 使用Canny邊緣檢測

edges = cv2.Canny(gray, 50, 150)

創(chuàng)建二值掩膜(假設(shè)水印邊緣清晰)

_, mask = cv2.threshold(edges, 150, 255, cv2.THRESH_BINARY)

應(yīng)用掩膜

result = cv2.bitwise_and(img, img, mask=mask)

cv2.imwrite(output_path, result)

```

2. 深度學(xué)習(xí)模型(推薦使用預(yù)訓(xùn)練模型)

```python

需安裝依賴:pip install tensorflow opencv-python

import tensorflow as tf

import numpy as np

import cv2

使用預(yù)訓(xùn)練的模型(示例:假設(shè)已下載到當(dāng)前目錄)

model = tf.keras.models.load_model('watermark_remover.h5')

def remove_watermark深度學(xué)習(xí)(input_path, output_path):

img = cv2.imread(input_path)

img = cv2.resize(img, (256, 256)) 根據(jù)模型輸入調(diào)整

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

img_array = np.expand_dims(img, axis=0)

 模型預(yù)測(需修改實(shí)際模型邏輯)

prediction = model.predict(img_array)

將預(yù)測結(jié)果應(yīng)用到原圖(示例邏輯)

alpha = prediction[0][0]

result = cv2.bitwise_and(img, img, mask=np.uint8(alpha255))

cv2.imwrite(output_path, result)

```

三、第三方庫方案

1. 使用removing庫(需科學(xué)上網(wǎng))

```python

pip install removing

from removing import Remove

def remove_watermark第三方(input_path, output_path):

remove = Remove()

remove.load_model() 加載預(yù)訓(xùn)練模型

result = remove.remove(input_path)

result.save(output_path)

```

2. 使用remove.bg API(商業(yè)用途)

```python

需注冊獲取API Key

import requests

API_KEY = "your_api_key"

input_url = "https://api.remove.bg/v1.0/removebg"

files = {'image_file': open("input.jpg", 'rb')

主站蜘蛛池模板: 精品亚洲综合在线第一区| 国产激情综合在线观看| 国产综合第一页| 亚洲欧美国产∧v精品综合网| 人人狠狠综合久久亚洲| 丁香五月亚洲综合深深爱| 色婷婷综合久久久中文字幕| 国产综合色在线精品| 狠狠亚洲婷婷综合色香五月排名 | 99综合电影在线视频好看| 久久综合久久久| 亚洲综合在线观看视频| 一本一道久久综合狠狠老| 国产日韩欧美综合| 亚洲乱码中文字幕综合| 婷婷四房综合激情五月在线| 五月婷婷激情综合| 狠狠色丁香久久综合婷婷| 在线综合+亚洲+欧美中文字幕| 东京热TOKYO综合久久精品| 欧美日韩国产综合草草| 狠狠久久综合| 狠狠色狠狠色综合| 伊人久久大香线蕉综合影院首页| 天天综合色天天综合色hd| 亚洲伊人久久综合影院| 久久亚洲综合色一区二区三区| 国产综合成人久久大片91| 浪潮AV色综合久久天堂| 色88久久久久高潮综合影院| 久久婷婷五月综合成人D啪| 精品久久久久久综合日本| 久久综合九色综合久99 | 五月天激情综合| 东京热TOKYO综合久久精品| 色噜噜狠狠狠综合曰曰曰| 亚洲欧美成人综合久久久| 国产成人亚洲综合色影视| 综合国产精品第一页| 婷婷亚洲综合五月天小说| 91久久婷婷国产综合精品青草|