
BlindWaterMark 盲水印实战3 分钟把文字藏进图片再原样提取出来【免费下载链接】BlindWaterMark盲水印 by python项目地址: https://gitcode.com/gh_mirrors/bli/BlindWaterMark你发出去的那张图除了画面本身还能不能再装点别的东西假设你想给朋友传一句只有他看得懂的话或者想证明某张插画是你画的又不愿在图上留下任何可见的痕迹——盲水印就是为这种需求准备的。BlindWaterMark 是一个用 Python 写的盲水印工具把文字或小图嵌进另一张图的频率数据里嵌入后肉眼看不出任何变化而只要手上有原图就能把藏进去的内容提取出来。它仓库自带的演示特别有意思——藏的正是我喜欢你四个字。下面我们就拿这张插画把四个字藏进去、再取出来。它凭什么值得一试一句话概括它的价值把信息隐藏从算法论文变成两条命令。操作只有encode藏和decode取两个子命令参数一只手数得过来依赖只有 opencv-python 和 matplotlib一个 requirements.txt 全部搞定算法走 FFT 频域原图约 277KB、嵌完水印约 317KB画面却看不出差异支持--seed自定义随机种子不知道种子拿到图也解不出同时提供 Python 2 / 3 两个脚本--oldseed还能让两版结果互通。动手前先装好两个依赖依赖只有两个装起来很快git clone https://gitcode.com/gh_mirrors/bli/BlindWaterMark cd BlindWaterMark pip install -r requirements.txt若这一步报错多半是网络源或 Python 版本的问题换成python -m pip install -r requirements.txt再试一次通常能过。首次实战把我喜欢你藏进一张插画第一步准备素材仓库里已备好演示文件hui.png是原图插画wm_py3.png是写着我喜欢你的水印图。先拿它们练手跑通后再换成自己的素材。第二步嵌入水印执行这条命令把水印藏进原图python bwmforpy3.py encode hui.png wm_py3.png hui_wm_py3.png # 参数依次是原图 水印图 输出文件名跑完终端会打印一行Miss X% in save这是工具自带的误差估算数值越低说明保存前后越接近。打开生成的hui_wm_py3.png和原图对比——肉眼几乎找不到区别。第三步把水印取出来加密是单向的就没意思了。现在用原图当钥匙把隐藏内容解出来python bwmforpy3.py decode hui.png hui_wm_py3.png wm_out_py3.png # 参数依次是原图 带水印的图 输出水印文件名打开wm_out_py3.png你会看到我喜欢你四个字被还原出来。注意 decode 必须同时传入原图这是这类水印算法的工作方式不是 bug。到这里藏与取的全流程就跑通了。参数怎么选新手只看 alpha 和 seed--alpha水印强度默认 3.0。调大比如 5~8水印更抗折腾但画面可能出现轻微噪点新手用默认值即可进阶再往上加。--seed随机种子默认 20160930。encode 和 decode 必须用同一个值否则解出来是一团乱码。把种子换成你自己的数字相当于给水印上了把只有你知道的锁。--oldseed只有需要和 Python 2 版本结果互通时才加平时用不到。# 进阶示例自定种子 更强水印 python bwmforpy3.py encode hui.png wm_py3.png hui_wm_py3.png --seed 5201314 --alpha 5.0安装报错、解不出来先查这 5 处报cant find hui.png终端没在项目目录里先cd到克隆目录再运行。报No module named cv2依赖没装上执行pip install -r requirements.txt。水印图太大assert 直接报错水印必须小于原图一半的高度宽度也要比原图窄缩小水印即可。提取出来是一团灰噪点encode 和 decode 的--seed或--alpha不一致或者 decode 时没传原图检查这两处。大图处理特别慢实现是逐像素的 Python 循环先拿小图跑通流程再处理大图。先说清楚它的边界项目名叫 BlindWaterMark但它并不是不需要原图的盲水印——decode 时必须传入原始图片只有带水印的那张图是取不出来的。它也不扛激烈攻击截图、大幅压缩、裁剪都可能毁掉水印能藏的内容量有限水印尺寸受原图大小约束。最后别指望它保密——真要传敏感信息请先加密再藏。盲水印负责的是看不见不是打不开。下一步跑通你自己的第一张图现在就去把你的名字或一句想说的话做成水印嵌进自己的一张照片再原样提取出来。跑通之后打开bwmforpy3.py看看 FFT 那几行代码你会发现这个黑科技比想象中直白得多。调坏几个参数没关系——那正是上手最快的路。【免费下载链接】BlindWaterMark盲水印 by python项目地址: https://gitcode.com/gh_mirrors/bli/BlindWaterMark创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考