news 2026/9/12 4:27:24

blind_watermark 实战:3 种水印模式,提取时不需要原图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
blind_watermark 实战:3 种水印模式,提取时不需要原图

blind_watermark 实战:3 种水印模式,提取时不需要原图

【免费下载链接】blind_watermarkBlind&Invisible Watermark ,图片盲水印,提取水印无须原图!项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark

图片被转载后找不到证据,是内容创作者最常遇到的糟心事。blind_watermark 是一个 Python 盲水印库:把版权信息藏进像素,肉眼看不出,提取水印无须原图。命令行两句话,3 种模式(文本、图片、二进制)任选。

先跑通一条命令

git clone https://gitcode.com/GitHub_Trending/bl/blind_watermark && cd blind_watermark pip install -e . python -m blind_watermark.cli_tools --embed --pwd 1234 examples/pic/ori_img.jpeg "owner" embedded.png python -m blind_watermark.cli_tools --extract --pwd 1234 --wm_shape 39 embedded.png

最后一条会原样吐出owner。闭环的关键参数是--pwd--wm_shape(水印比特长度,上例为 39),嵌入时记下来,提取时原样带上。

仓库自带的示例图,水印就是嵌在这张里。

三种模式,一张表讲清

模式嵌入内容典型场景抗压缩/缩放表现源码入口
文本str一句文字,UTF-8 编码后转比特署名、版权声明、联系方式短文本循环写入大量块,冗余度最高,抗压缩缩放最稳blind_watermark.pyread_wm(mode='str')
图片img水印图按灰度 128 阈值转成 0/1 矩阵Logo、复杂图形水印每个像素只写一次,块少位多,旋转缩放后提取图易糊同上,read_wm(mode='img')
二进制bit一串自定义 0/1 序列数字指纹、溯源标识容量最灵活,鲁棒性取决于你给多少冗余同上,read_wm(mode='bit')

三种模式的差别只在read_wm()这一步怎么变成比特串;后面完全同一条流水线:DCT 变换后按 SVD 把比特写进 4×4 块的奇异值,三个颜色通道各写一份,提取时对每个比特的所有副本求平均抗噪,核心实现在 bwm_core.py。

一句话差异:文本模式适合"短内容、强对抗",图片模式适合"图形化水印、能接受损失",二进制模式适合"自己控制编码与校验"。

压一压、转一转,水印还在吗

缩放:把打过水印的图压到 300×400 再放大回去,提取结果仍是原文本,逐字符完整。仓库里有对照图,docs/缩放攻击.jpg 是攻击后的图,docs/缩放攻击_提取水印.png 是提取出的水印。

旋转:转 45° 再转回来,文本水印照样读出,见 docs/旋转攻击.jpg 与 docs/旋转攻击_提取水印.png 两张成对示例。

裁剪更极端:先裁剪、再被缩放(常见于手机截图转发),可以靠 recover.py 里的estimate_crop_parameters推测裁剪参数,再recover_crop模板还原后正常提取;攻击函数本体在 att.py。

选型 & 踩坑速查

  • --pwd--wm_shape记牢:提取必须知道密码和水印比特长度,丢一个都白搭,建议随图存档。
  • 文字短一点:文本模式会把比特循环铺满全图所有可用块,文本越短冗余越多,抗压缩水印能力越强。
  • JPG 质量参数别低于 80:有损压缩直接改 DCT 系数,奇异值被噪声淹没后提取位误差明显上升,交付前的最后一次压缩要留够质量。
  • 先还原尺寸再提取:被缩放、旋转过的图,恢复接近原图大小后再提取,块与 4×4 分块的对应关系才稳定,平均环节才有效。
  • 报"溢出"就是容量不够:水印比特数超过图片可容纳的块数时会抛 IndexError,换短文本或更大的底图。

想再深一层

更多攻击样例与截图还原流程在 docs/ 目录;嵌入与提取的完整实现就在 bwm_core.py,全局常数d1/d2控制鲁棒性与失真的平衡,改这两个数即可按自己的场景调参。

【免费下载链接】blind_watermarkBlind&Invisible Watermark ,图片盲水印,提取水印无须原图!项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 4:27:02

信息安全基础:物理安全的核心防护与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 4:23:59

Upscayl:免费本地AI图片放大工具

Upscayl:免费本地AI图片放大工具 【免费下载链接】upscayl 🆙 Upscayl - #1 Free and Open Source AI Image Upscaler for Linux, MacOS and Windows. 项目地址: https://gitcode.com/GitHub_Trending/up/upscayl Upscayl 是一款免费开源的 AI 图…

作者头像 李华
网站建设 2026/9/12 4:23:36

光子晶体仿真与Comsol实现:从基础到拓扑分析

1. 光子晶体仿真基础与Comsol环境搭建光子晶体作为一种周期性介电材料,其独特的带隙特性在光通信、传感和量子光学领域具有广泛应用。Comsol Multiphysics凭借其强大的多物理场耦合能力,成为光子晶体仿真的首选工具之一。在开始拓扑荷和Merging BIC等高级…

作者头像 李华
网站建设 2026/9/12 4:23:30

西门子Smart200 PLC锁机方案设计与实现

1. 西门子Smart200 PLC锁机方案概述在工业自动化控制领域,设备制造商常常需要对PLC设备进行授权管理,防止未经授权的使用或复制。西门子S7-200 SMART系列PLC因其性价比高、编程简单等特点,在中小型自动化项目中广泛应用。针对这一平台&#x…

作者头像 李华
网站建设 2026/9/12 4:21:43

SpringBoot+Vue健身社交平台架构设计与实现

1. 项目概述:健身社交平台的架构设计这个基于SpringBootVue的健身社交平台,本质上解决的是现代人"健身难坚持"的核心痛点。我见过太多朋友买了健身卡却只去洗了三次澡,这个系统通过"社交打卡"的双重机制,把原…

作者头像 李华
网站建设 2026/9/12 4:17:11

Abaqus细观模拟带肋钢筋-混凝土粘结破坏技术解析

1. 项目概述:带肋钢筋-混凝土粘结破坏的细观模拟在土木工程领域,钢筋与混凝土的粘结性能直接决定了钢筋混凝土结构的整体性能。传统宏观模拟方法往往将混凝土视为均匀材料,难以准确反映粘结界面复杂的力学行为。我们采用Abaqus软件&#xff0…

作者头像 李华