基于频域的数字盲水印,
# -*- coding: utf-8 -*-
from blind_watermark import WaterMark
# pip install blind-watermark
# 嵌入文本
def mark_text():
bwm1 = WaterMark(password_img=1, password_wm=1)
bwm1.read_img('watermark/原图.jpeg')
wm = '@guofei9987 开源万岁!'
bwm1.read_wm(wm, mode='str')
bwm1.embed('watermark/embedded.png')
len_wm = len(bwm1.wm_bit)
print('Put down the length of wm_bit {len_wm}'.format(len_wm=len_wm))
# 提取文本
def unmark_text():
bwm1 = WaterMark(password_img=1, password_wm=1)
wm_extract = bwm1.extract('watermark/embedded.png', wm_shape=len_wm, mode='str')
print(wm_extract)
# 嵌入二维码
def mark_img():
bwm1 = WaterMark(password_wm=1, password_img=1)
# read original image
bwm1.read_img('watermark/原图.jpeg')
# read watermark
bwm1.read_wm('watermark/watermark.png')
# embed
bwm1.embed('watermark/embedded.png')
# 提取二维码
def unmark_img():
bwm1 = WaterMark(password_wm=1, password_img=1)
# notice that wm_shape is necessary
bwm1.extract(filename='watermark/embedded.png', wm_shape=(128, 128), out_wm_name='watermark/extracted.png', )
if __name__ == '__main__':
mark_text()
unmark_text()
参考:https://gitee.com/guofei9987/blind_watermark https://blindwatermark.github.io/blind_watermark/#/zh/README