盲水印(blind_watermark)
(没搞懂,不知道如何求wm_shape,如果wm_shape不对就无法正确提取)
- 工具下载
pip install blind-waterblind # 适用于Linux与Windows
windows下安装的是.exe文件,在cmd中可以直接使用
输入blind_watermark.exe即可
使用方法
blind_water.exe -h # 查看其用法选项
- 在终端中使用(文字)
# 嵌入文本水印 blind_watermark --embed --pwd 1234 ori_img.jpeg "watermark text" embedded.png # 提取文本水印 blind_watermark --extract --pwd 1234 --wm_shpe 111 embedded.png #wm_shape 是水印的形状
- Python脚本
# 嵌入 from blind_watermark import WaterMark bwm1 = WaterMark(password_wm=1, password_img=1) # read original image bwm1.read_img('pic/ori_img.jpg') # read watermark bwm1.read_wm('pic/watermark.png') # embed bwm1.embed('output/embedded.png') # 提取 bwm1 = WaterMark(password_wm=1, password_img=1) # notice that wm_shape is necessary bwm1.extract(filename='output/embedded.png', wm_shape=(128, 128), out_wm_name='output/extracted.png', )
图片
# 嵌入
from blind_watermark import WaterMark
bwm1 = WaterMark(password_wm=1, password_img=1)
# read original image
bwm1.read_img('pic/ori_img.jpg')
# read watermark
bwm1.read_wm('pic/watermark.png')
# embed
bwm1.embed('output/embedded.png')
# 提取
bwm1 = WaterMark(password_wm=1, password_img=1)
# notice that wm_shape is necessary
bwm1.extract(filename='output/embedded.png', wm_shape=(128, 128), out_wm_name='output/extracted.png', )
另一个盲水印
建议安装在Linux下,选择Python3版本
- 使用方法
python3 bwmforpy3.py decode 原图 加密的图 输出的图
根据官方文档,如果不能正确的解密,则在最后加上--oldseed
,这是因为random在不同的版本算法是不同的
题目4-1