
没有原图也能读出水印blind_watermark 的三种嵌入用法【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark你遇到过这种情况吗图片角落放了个小 logo被转发的第一刀裁剪就没了加一行半透明文字对方调个色就洗干净了。blind_watermark 就是冲着这类痛点来的——一个图片盲水印工具能把文本、图片或者 0/1 数据写进图像而且提取时不依赖原图只拿打过水印的图就能把信息读出来。先扫一眼定位与能力一张表项目内容项目blind_watermark定位图片盲水印基于 DWT-DCT-SVD 的变换域嵌入核心能力文本 / 图片 / 二进制三种水印模式提取无须原图可扛旋转、裁剪、遮挡、缩放等常规攻击适合谁个人创作者、图片分发平台、想在 Python 里做版权自证的人文本水印把一句话写进变换域 ✍️解决什么问题只想留个署名、账号或声明懒得准备水印图。怎么落地modestr先把字符串编码成比特串用密码password_wm打乱顺序再写入变换域系数核心实现在 bwm_core.py。效果如何仓库自带样例 examples/example_str.py 往示例图里写一行 215 比特的文字提取结果与原串逐字符相等60 度旋转、60 块随机遮挡、5% 椒盐噪声之后再提取脚本里的 assert 依然全部通过。图片水印把 logo 塞进图里 ️解决什么问题你想嵌的不是一句话而是一张二维图案——logo、二维码、角标。怎么落地modeimg以灰度读入水印图然后二值化后嵌入。注意这一步会丢掉灰度级水印实际以 0/1 矩阵的形式存在不是像素级拷贝。效果如何提取时把水印图的长宽传给wm_shape拿回 0/1 矩阵。64×64 的 logo 整体图案能对上但别指望每个边缘细节都完整还原。二进制水印嵌入任意 0/1 序列 解决什么问题订单号、设备指纹、批次 ID——本来就是比特序列的东西。怎么落地把[True, False, ...]直接交给modebit嵌入提取时记下len(wm)当长度用。效果如何examples/example_bit.py 里 10 比特样例在截屏、旋转、椒盐、遮挡之后逐位 assert 一致裁剪场景还配了estimate_crop_parameters加recover_crop不知道裁剪参数时能先猜出裁剪区域再提取。装好就能跑三步完成嵌入与提取第一步装pip install blind-watermark第二步嵌入、第三步提取两行命令闭环。注意--wm_shape 111里的 111 是水印文本 watermark text 的比特长度提取时漏了它就读不出来blind_watermark --embed --pwd 1234 examples/pic/ori_img.jpeg watermark text examples/output/embedded.png blind_watermark --extract --pwd 1234 --wm_shape 111 examples/output/embedded.png第二条命令的输出就是水印文本本身。更多攻击演示可以参考 docs/ 目录。什么时候它不够用四个边界 ⚠️用之前先说清它做不了什么。“盲”只发生在提取侧。嵌入环节必须拿原图你手上只有转发行没有原图时无法补嵌。提取信息有前提文本/二进制模式要给出比特长度wm_shape图片模式要给出水印图尺寸两者缺一都跑不通。它扛的是“常规”攻击。重压缩、大面积裁剪、AI 重绘之后再提取没有保证裁剪虽然有一条 recover 通路但需要你先跑参数估计不是全自动黑盒。它处理的是普通 RGB 图片视频、音频、16 位深医疗影像不在这个工具的职责范围内。一句话选型只署个名选文本模式比特长度记在本地配置里要嵌 logo 或二维码选图片模式提前备好水印图尺寸程序里要落指纹数据选 bit 模式提取端做 assert 校验不一致就说明图被处理过。【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考