
Python 图片盲水印工具 blind_watermark5 步给照片加上隐形版权保护的完整指南【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark你有没有过这种经历精心调好的一张图发到网上第二天就在别人的主页里看到署名都换了想维权却发现拿不出任何能自证原创的证据。截图、转发、二次裁剪每一步都在抹掉你的痕迹。blind_watermark 就是为解决这个问题而生的 Python 开源工具它给你的图片加一层图片盲水印——水印藏在像素里肉眼看不见而提取时不需要原图只要一张被传播出去的图加密码就能把水印信息读回来。为什么水印看不见、却能提得出来 可以把它想象成往一锅汤里调了一组极细微的盐量组合。单尝一口尝不出来但只有你知道调味公式的人能按配方把味道称出来。盲水印的原理类似blind_watermark 用 DWT-DCT-SVD一种把图片拆成不同频率成分的数学变换人眼对高频细节不敏感把水印比特分散编码进图片各处的频域系数里。因为信息被拆碎摊薄肉眼看到的就是和原图几乎一样而提取时用同样的密码和变换反向还原比特就能重新拼回来。这就是看不见和提得出能同时成立的原因。核心实现在 blind_watermark/bwm_core.py 中。一行命令安装十分钟跑通 blind_watermark 教程安装只需要一条 pip 命令pip install blind-watermark装完后终端里会多出一个blind_watermark命令可以直接在命令行完成嵌入和提取如blind_watermark --embed --pwd 1234 原图.jpg 水印文字 输出.png不写代码也能用。如果习惯用 Python最小可跑的嵌入 提取示例不到 10 行from blind_watermark import WaterMark bwm WaterMark(password_img1, password_wm1) bwm.read_img(pic/ori_img.jpeg) bwm.read_wm(我的版权标记, modestr) bwm.embed(output/embedded.png) len_wm len(bwm.wm_bit) # 提取时必须知道这个数字 bwm1 WaterMark(password_img1, password_wm1) print(bwm1.extract(output/embedded.png, wm_shapelen_wm, modestr))运行后output/embedded.png就是打好盲水印的图肉眼对照几乎看不出差别最后一行打印出来的就是当初埋进去的那句我的版权标记。图片被旋转、裁剪、遮挡后水印还提得出来吗 这是盲水印和贴一张 logo 图式水印最大的差别。仓库里的测试脚本模拟了常见传播过程中的各种折腾下面是几类攻击后的实际效果旋转 45 度之后图歪了但按 README 中的测试流程提取得到的仍然是完整的水印文本。横向裁掉一部分再填补水印信息依然能读出来。遮挡的情况更直观——下面这张图被多处涂抹遮挡提取结果不变除旋转、裁剪、遮挡外examples/example_str.py 里还包含缩放、椒盐噪声、亮度调整等攻击的完整复现代码recover.py提供了裁剪还原辅助函数可以自己改参数验证边界在哪里。用之前要知道的三件事1. 水印有三种形态按需选择。read_wm的mode参数支持str一段文字、img一张小图如二维码图案、bit一串 0/1 数据。嵌入图片水印可参考 examples/example_img.py嵌入比特流见 examples/example_bit.py。2. 密码是提取的前提。password_img和password_wm两个参数分别控制找图的位置和解乱序的密码。忘了解密密钥任何人都提不出内容所以自己先记牢再分发。3. 提取时必须告诉程序水印长度。extract(..., wm_shape...)里的wm_shape是水印比特数文字模式下就是len(wm_bit)图片模式是长宽比特模式是比特个数。嵌入时打印并保存这个数字否则无法提取。另外比特模式提取结果是 0~1 之间的浮点数需要自行设阈值判断。下一步跑一个现成脚本到这里blind_watermark 的加隐形水印闭环已经完整了嵌入无感、提取无需原图、常见攻击后仍可读取。与其只读文章不如打开 examples/example_str.py 跑一遍——它会依次演示嵌入、提取和多种攻击下的还原全程只需要仓库里自带的示例图片几行输出就能亲眼看到水印被准确读回。【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考