ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

blind_watermark:3分钟给图片加隐形水印,不靠原图也能取回

blind_watermark:3分钟给图片加隐形水印,不靠原图也能取回 blind_watermark3分钟给图片加隐形水印不靠原图也能取回【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermarkblind_watermark 是一个开源的图片盲水印工具把一段文字、一张小图或一串比特流藏进图片肉眼完全看不出来提取时不需要原图只要密码和长度即可。适合想给作品加防盗标记的创作者以及想把水印能力集成进自己产品的开发者。图被盗图裁掉署名之后你手里没什么证据照片被搬运、被裁掉角落的署名、被压成低清图再传一遍维权时你很难证明这原本是我发的图。明水印太扎眼还会被人 P 掉完全不留痕迹又等于放弃主张。盲水印的思路就是折中图面上一个像素都不动把信息藏在人眼不敏感的地方事后再把信息读出来。blind_watermark 做的就是这件事而且提取环节只要带水印的那张图原图丢了也没关系。两条命令上手装完、嵌入、取回pip install blind-watermark装好后跑一段最小的嵌入和提取完整可运行的版本在 examples/example_str.pyfrom blind_watermark import WaterMark bwm WaterMark(password_img1, password_wm1) bwm.read_img(pic/ori_img.jpeg) bwm.read_wm(copyright: yourname, modestr) bwm.embed(output/embedded.png) len_wm len(bwm.wm_bit) # 这个长度要记下来 bwm1 WaterMark(password_img1, password_wm1) print(bwm1.extract(output/embedded.png, wm_shapelen_wm, modestr))打印出来的就是你嵌入的那句话。如果不想写代码装完包还会注册一个终端命令blind_watermark用--embed/--extract参数也能完成文字水印的嵌入和提取但嵌图片水印、嵌比特流这些玩法还是写代码更清楚。水印内容支持三种字符串modestr、小图片modeimg按灰度阈值转成黑白比特、以及直接的布尔比特流modebit。原理一句话把便条折进图块的纹理里可以把它想象成藏便条你不改动照片里任何一个人只是按一份排序清单微调了若干块纹理外人看照片毫发无损只有拿着同一份清单的人才能把便条还原出来。对应到代码里就是把原图切成很多小块对每块做几轮频域变换再用两个密码password_img、password_wm把水印比特打乱顺序后藏进变换结果的系数里具体实现在 blind_watermark/bwm_core.py。提取时不需要原图用同样的两个密码和同样的水印长度把顺序倒回去即可这也是它敢叫盲水印的原因。效果对比肉眼看不出旋转加噪照样读回这两张是同一张图左边是原图右边是嵌入水印后存出来的图docs/原图.jpeg、docs/打上水印的图.jpg肉眼看不出差别。再狠一点官方示例给水印图做了 60 度旋转和 5% 概率的椒盐噪声examples/example_str.py 里的攻击测试下面两张分别是攻击后的样子提取结果依然是原文除了这两类示例里还覆盖了缩放、裁剪、遮挡、亮度、截屏等攻击README 的表格里列了每种攻击下的恢复结果可以对着看。用之前先知道的 4 个坑水印长度必须自己记。提取时wm_shape是必填项忘掉了len_wm就真的提不出来。建议在嵌入脚本里把它打印出来存档。嵌入和提取要同一个版本。初始化时会打印提示Make sure the version is the same when encode and decode别在嵌入后升级库再去解老图。输出尽量存 PNG。embed()支持compression_ratio参数控制 JPEG 压缩但低质量 JPG 会直接压坏水印日常用法是存 PNG。裁剪、旋转不能直接提。要先用仓库自带的 blind_watermark/recover.py 做还原如果你连攻击参数都不知道得用estimate_crop_parameters去猜能用就省着用。哪些场景不建议用它只处理静态图片没有视频水印视频场景请另找工具。两个密码只是整数种子本质是口令而不是加密。攻击者知道这个项目、又有耐心试参数的话可以暴力试出水印内容别拿它当高强度保密通信的载体。图片要经过社交媒体多次重压缩、转格式再分发的话鲁棒性没有测试表里那么乐观。小图容量有限宿主图越小能塞的水印越短想嵌一张像样的 logo 图宿主图得够大。它不是一个万能的版权法庭证据而是一个把防盗成本拉高的实用工具用对场景就很称职。更多攻击案例和参数细节直接看 README 里的对照表再跑一遍 examples/example_str.py 亲手验证效果最踏实。【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表