文章目录
- 简介
- 安装
- 初试
- 遇到的坑
- 参考文献
简介
盲水印就是图片有水印但人眼看不出来,需要通过程序才能提取水印,相当于隐形“盖章”,可以用在数据泄露溯源、版权保护等场景。
该库出自阿里巴巴安全团队,强大之处:
- 解析水印图时无需原图
- 水印图剪裁、旋转都不会破坏图中的盲水印
- 支持密码加密
缺点:
- 耗时长
- 对底色较白的图破坏比较明显
安装
pip install blind-watermark
pip install opencv-python
pip install PyWavelets
初试
ori_img.png

watermark.png

添加并提取盲水印
from PIL import Image
from blind_watermark import WaterMarkimg = 'pic/ori_img.png' # 原图
wm = 'pic/watermark.png' # 水印
embed = 'output/embedded.png' # 添加盲水印后的图片
extract = 'output/extracted.png' # 提取盲水印watermark = WaterMark()
watermark.read_img(img)
watermark.read_wm(wm)
watermark.embed(embed)watermark.extract(filename=embed,wm_shape=Image.open(wm).size,out_wm_name=extract) # 提取盲水印
embedded.png

extracted.png

遇到的坑
- 嵌入的信息不能过多,也就是图片过大,否则会溢出。
- 运算时间久,CPU使用i7-10510U,加盲水印耗时16.5秒,提取盲水印耗时11.5秒。
参考文献
- Blind Watermark GitHub









![[python] 基于blind-watermark库添加图片盲水印](https://img-blog.csdnimg.cn/56836738309b45a6903cf004266d2ed9.png#pic_center)







