
3 步给图片加上隐形水印提取时不用原图blind_watermark 使用手记【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark分发作品图、产品图时最麻烦的事往往是被人拿去当自己的。明水印碍眼而盲水印把信息藏进图片里肉眼看不出痕迹。blind_watermark 是一个 Python 图片盲水印工具把文字或图片水印嵌入后提取时不需要原始图片官方示例还验证了旋转、裁剪等常见处理后的提取效果。原理速览水印藏在哪儿常见的图片水印要么肉眼可见要么提取时要拿原图做比对。blind_watermark 走的是盲的路线水印信息被写入图像的频域frequency domain系数提取时只需要被打过水印的这张图外加两把钥匙——密码password和水印长度wm_shape。这意味着哪怕对方手里只有转发的图片、你这边已经找不到原文件也能验证这张图是不是我发出去的。 安装后跑第一条命令终端执行pip install blind-watermark安装。随后几行 Python 就能完成嵌入和提取要嵌入的图片可以直接用项目自带的示例图examples/ 目录里的示例脚本用的就是它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) # 记住长度提取要用 wm bwm.extract(output/embedded.png, wm_shapelen_wm, modestr)核心逻辑都在 blind_watermark/blind_watermark.py 的WaterMark类里频域变换这些细节都替你封装好了。不想写 Python 的话命令行也能用blind_watermark --embed --pwd 1234 img.jpg 水印文字 out.png。 旋转、裁剪、缩放之后还能提取吗官方示例跑过一组处理测试45° 旋转、随机裁剪、多处遮挡、缩放、椒盐噪声、亮度调整之后文字水印都能原样提取出来。但有个细节要知道这些测试大多带了还原环节——旋转的图要先转回去缩放的要拉回原分辨率裁剪的则依赖 blind_watermark/recover.py 里的工具估算裁剪区域再复原最后才提取。也就是说它的抗攻击前提是你大致知道图片经历了哪种处理而不是对任意恶意处理都能直接解出。适合谁不适合什么场景适合给对外分发的图片加版权标记摄影、插画、媒体发稿内容溯源发现被转载后验证图是否出自你的文件顺带藏一段结构化数据比如编号、校验码要留个心如果需要对方怎么折腾都必能提取它做不到对抗主动破坏或翻拍时鲁棒性有限密码和wm_shape必须自己保管丢了就永远提不出来水印容量和图分辨率相关小图别塞长文本不支持视频高安全等级场景别把它当唯一防线收尾怎么选需求是图片上留个能自证的标记常见处理后自己还能提出来blind_watermark 几行代码就能跑通值得直接上手。若要对任意对抗性篡改做防御先按上面的测试思路做一轮验证再决定投入。【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考