ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

三步跑通盲水印嵌入与提取:blind_watermark 项目实践指南

2026/9/12 5:07:03 拓冰建站 浏览量
三步跑通盲水印嵌入与提取:blind_watermark 项目实践指南 三步跑通盲水印嵌入与提取blind_watermark 项目实践指南【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark图片被论坛转载、作者无从查起设计稿被原样二传维权时拿不出归属凭证。开源项目 blind_watermark 就是为这类场景做的它把文字或图片隐形地嵌入照片形成盲水印提取水印时不需要原图——光靠传播出去的图就能还原水印内容。下面用仓库自带的示例走一遍完整流程怎么嵌入、旋转裁剪之后还能不能提取、边界在哪里。项目速览提取水印为什么不需要原图blind_watermark 是一个纯 Python 的图片盲水印库基于 DWT-DCT-SVD 变换把水印写进图像的频率域系数。它面向两类人需要给图片加不可见水印做版权保护、内容追踪的开发者以及只想拿对方手里的图验证归属、不想留一份原图做比对的使用者。它和常见靠原图比对提取方案的本质区别在于extract的输入只有打过水印的图全程不碰原图。核心接口是一个WaterMark类核心逻辑在 blind_watermark/ 包里文字、图片、0/1 位序列三种水印都能嵌。三步跑通首次嵌入与提取第 1 步克隆并安装依赖git clone https://gitcode.com/GitHub_Trending/bl/blind_watermark cd blind_watermark pip install -r requirements.txt依赖只有 numpy、OpenCV、PyWavelets没有深度学习这类重依赖。第 2 步嵌入一条字符串水印from blind_watermark import WaterMark bwm WaterMark(password_img1, password_wm1) bwm.read_img(pic/ori_img.jpeg) bwm.read_wm(guofei9987 开源万岁, modestr) bwm.embed(output/embedded.png)两侧密码必须一致是嵌入端和解密端的约定。嵌入图片水印时read_wm传图片路径即可嵌位序列则用modebit。第 3 步提取水印bwm WaterMark(password_img1, password_wm1) print(bwm.extract(output/embedded.png, wm_shapelen_wm, modestr))注意wm_shape必填它指水印的形状字符串是水印比特长度嵌入时记录len(bwm.wm_bit)即可图片水印则是水印图的高和宽。这是提取端需要自行保留的元信息。仓库 examples/ 里有 5 个可直接运行的脚本其中 example_str.py 最完整把攻击链全覆盖了。 效果实测旋转、裁剪之后还能提取吗嵌入人眼看不出差异用 examples/pic/ 的样图嵌入输出图与原图对比没有肉眼可见的变化干扰把图旋转 45° 再转回来把打过水印的图旋转 45°模拟图片被翻拍、转存后的倾斜提取文字一字不差图样可辨转回原始角度后交给extract输出与嵌入文本一字不差如果嵌的是图片水印提取出来是一张水印图仍可辨认的灰度图截图式裁剪先估参数再还原最真实的攻击是转载时裁剪 缩放随机裁出一块区域再缩到 0.7 倍。此时不必知道裁切细节——先用estimate_crop_parameters自动估计裁剪框与缩放比搜索范围 0.5×2×再用recover_crop恢复回原尺寸最后正常提取示例脚本里的断言全部通过。能力与边界这些扛得住那些不保证仓库自带攻击测试列表里以下操作提取均正常旋转45°示例中 60° 也可以转回后提取随机裁剪、横向/纵向裁剪估参数、还原后提取遮挡约 10% 面积随机遮挡 60 次缩放恢复原尺寸后提取5% 椒盐噪声、亮度下调 10%同时有三条明确的边界几何类攻击走先还原、再提取的路子旋转要转回去裁剪和缩放要恢复原尺寸裁掉的比例过大时参数估计不一定成功。提取必须提供wm_shape嵌入端要记录水印长度或尺寸并交给提取端并不是什么都不用带。测试列表以几何变换和轻度噪声为主。高比例 JPEG 重压缩、重度模糊这类强处理不在列表里不要默认它扛得住正式上线前先用自己的素材实测一轮。✅ 什么场景值得用它适合用的场景图片要分发、脱离你手里只想用对方手里的图证明归属需要追踪泄露源给不同渠道嵌入不同字符串泄露时能定位渠道想在图里藏一点轻量信息不想再建一个存储或校验通道不适合、或换个方案更省事的你手里有原图、只是想以后验证一下——可逆水印更简单盲水印属于用重了需要防图片内容被篡改——水印不是签名嵌入后内容照样可被改动仓库目前已覆盖嵌入、提取与攻击还原的核心链路批量处理还能用多进程参数加速真要投产第一步是拿自己的素材把有效性实测一遍。【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考