尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

无需原图提取水印:blind_watermark 五分钟完整指南

无需原图提取水印:blind_watermark 五分钟完整指南 无需原图提取水印blind_watermark 五分钟完整指南【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark图被别人裁剪、缩放后转走你要证明版权手里只有当时导出的那张带水印的图。blind_watermark 这个图片盲水印工具解决的就是这个问题它能把文字或数据不可见地嵌入图片提取时不需要原图只要被攻击后的水印图加密码就够了。下面几分钟讲清它做什么、怎么跑起来、以及会在哪里翻车。blind_watermark 能做什么不能做什么一句话定位基于 DWT-DCT-SVD 频域变换的图片盲水印库给需要为图片证明归属的开发者、摄影师、内容平台用。它能做的嵌入文字、图片、比特流三种形式的水印肉眼看不出任何痕迹只凭水印图提取不需要原图旋转、缩放、多块遮挡、椒盐噪声、亮度调整之后仍能把水印读出来它不能做的不支持视频只能处理图片裁剪缩放这类复合攻击不能直接提取需要配合恢复功能且恢复时要把嵌入时的原图当作模板容量有上限每个 4×4 像素块只藏 1 个比特小图只能嵌短句怎么装3 行代码嵌入水印安装只有一行命令命令行工具和 Python 包会一起装好pip install blind-watermark嵌入并记住一个关键数字len_wm跑完会生成一张和原图肉眼无法区分的embedded.pngfrom blind_watermark import WaterMark bwm WaterMark(password_img1, password_wm1) bwm.read_img(examples/pic/ori_img.jpeg) bwm.read_wm(你的名字, modestr) bwm.embed(output/embedded.png) len_wm len(bwm.wm_bit)提取只需要被水印图本身跑完终端直接打印出嵌入时的原文bwm2 WaterMark(password_img1, password_wm1) print(bwm2.extract(output/embedded.png, wm_shapelen_wm, modestr))不想写代码也有 CLIblind_watermark --embed --pwd 1234 原图.jpg 水印文字 输出.png即可。效果实证攻击前后对比先看隐蔽性。左边是没动过的原图右边已经嵌入了一段文字水印两张图放大逐像素对比也几乎看不出差别再看鲁棒性。仓库自带 att.py 模拟攻击、recover.py 做恢复完整测试流程在 example_str.py。下图是同一张水印图被旋转 45 度、以及被 60 块随机白色遮挡后的样子输入是这两张面目全非的图输出依然是嵌入时的那段原文——这就是盲字的含金量提取端全程没见过原图。原理速览像给梳子每个齿刻一道痕可以把它想象成刻齿在一把梳子的每个齿上偷偷刻一道斜纹梳子看起来没变但数一数斜纹方向就能确认归属哪怕刮掉几个齿也不影响。blind_watermark 的做法类似把图切成 4×4 的小块每块做 DCT 变换后调 SVD 的最大奇异值往上调一点记 1往下调一点记 0。同一个比特会冗余写进 YUV 三个通道提取时对每个块读出结果取平均投票所以坏掉一部分块照样能恢复。两个密码各管一件事——password_img打乱块的写入顺序password_wm打乱比特顺序没有密码就算拿到图也解不出水印。核心实现都在 bwm_core.py 里注释清晰值得读一遍。实战注意这几个坑提前踩如果你不打算把水印长度存下来可以让系统替你记嵌入时打印len(bwm.wm_bit)并落库。extract()强制要求wm_shape忘了这个数提取直接做不了。如果你担心嵌入后文件变大可以在embed()里传compression_ratio参数换更小体积代价是鲁棒性略降。如果图片被裁剪或缩放过先用 recover.py 里的estimate_crop_parameters推测位置比例、recover_crop还原尺寸再提取注意它靠模板匹配需要嵌入时的原图作参照纯旋转则直接转回去即可。如果你的图只有几百像素就只嵌短句。容量约等于图片面积除以 16 的比特数想嵌长文本或图片水印图得够大。适合与不适合推荐场景个人创作者给作品留版权凭证、平台做图片溯源打标、证书与二维码类图片的防伪暗记、教学演示数字水印算法。不推荐场景视频水印需求它不处理视频任意未知变换下都能提取的期望恢复模块只覆盖裁剪缩放这类可建模的攻击大容量数据隐藏几千比特就到顶大载荷请找专用隐写工具。blind_watermark 的完整闭环就是嵌入、提取、攻击、恢复四步代码量小一个下午能通读一遍。装好它拿手边任何一张图跑一遍上面三行代码你就知道它够不够用。【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表