色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 添加盲水印

林子帆2年前9瀏覽0評論

近年來,隨著互聯網的發展和版權意識的增強,隱形水印技術逐漸被廣泛采用。Python 是一種廣泛使用的編程語言,擁有豐富的第三方庫,使得在 Python 中添加盲水印變得非常容易。

# 導入必要的庫
from PIL import Image
import numpy as np
import math
# 函數:將一維數組轉換成二維數組
def convert_shape(arr, col):
return [arr[i:i+col] for i in range(0, len(arr), col)]
# 函數:嵌入盲水印
def embed_watermark(img_path, watermark):
# 打開原始圖像
img = Image.open(img_path)
# 將圖像轉換成灰度圖像
gray_img = img.convert('L')
# 將圖像數據轉換成一維數組
img_arr = np.array(gray_img).flatten()
# 將盲水印數據轉換成一維數組
watermark_arr = np.array(list(watermark)).astype('uint8') * 255
# 獲得嵌入盲水印需要的參數
n = len(watermark_arr)
lsb = math.log2(gray_img.size[0])
delta = 1 / (2 ** lsb)
# 將每個像素的最低比特位嵌入水印
for i in range(n):
img_arr[i] = delta * (math.floor(img_arr[i] / delta) + ((watermark_arr[i] / 255) - 0.5) * delta)
# 將一維數組轉換成二維數組
img_arr_2d = convert_shape(img_arr, gray_img.size[0])
# 保存帶有水印的圖像
Image.fromarray(np.uint8(img_arr_2d)).save('watermarked_image.png')
# 調用函數并將盲水印添加到圖像中
embed_watermark('original_image.png', 'This is a blind watermark.')

以上代碼中,我們使用了 PIL 圖像處理庫來讀取和保存圖像。我們還使用了 Numpy 庫來處理二維數組。在嵌入盲水印的函數中,我們將圖像轉換成灰度圖像,獲得嵌入盲水印所需的參數,然后將每個像素的最低比特位嵌入水印。最后,我們將一維數組轉換成二維數組,并使用 PIL 圖像處理庫將圖像保存為帶有水印的圖像。

總的來說,使用 Python 嵌入盲水印非常容易。在實際應用中,我們可以將其應用于電子書、代碼和文檔等需要版權保護的數字資產中。