ARTICLE DETAIL

资讯详情

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

blind_watermark图片盲水印教程:免原图嵌入与提取

blind_watermark图片盲水印教程:免原图嵌入与提取 blind_watermark图片盲水印教程免原图嵌入与提取【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark画师把图发到网上过几天发现被人改成署名转发最难的是先证明这图是我画的。blind_watermark 是一个用 Python 写的图片盲水印工具盲水印单独一张带水印的图就能把水印读出来不用拿原图比对可以在不改变观感的前提下把文字或图片藏进图里下面讲怎么用、以及各种折腾之后它还能不能扛住。 pip 一行装好 blind_watermark大多数人直接装官方包就够了依赖只有 numpy、opencv-python、PyWavelets 三样Python ≥3.5Windows、Linux、macOS 都能跑pip install blind-watermark需要最新开发版本的话clone 源码装git clone https://gitcode.com/GitHub_Trending/bl/blind_watermark进仓库目录执行pip install .。️ 嵌入和提取各只需几步不用原图Python 里嵌入就是几次调用读原图、读水印文本、写出带水印的图。注意记下wm_bit的长度提取时要用from blind_watermark import WaterMark bwm WaterMark(password_img1, password_wm1) bwm.read_img(pic/ori_img.jpeg) bwm.read_wm(guofei9987 开源万岁, 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))提取时只传带水印的图、两个密码和长度原图不参与输出就是当初嵌入的那串文字。水印内容支持三种文字str、图片img、原始比特流bit。不想写代码也有命令行blind_watermark --embed --pwd 1234 pic.jpg 版权文字 out.png嵌入加--extract --wm_shape N读出。 原理一句话藏进人眼看不见的频域分量核心思路图片经过 DWT→DCT→SVD 三层频域变换小波变换、余弦变换、奇异值分解把图片从像素视角换成频率视角水印被写进人眼不敏感的高频分量里。所以肉眼怎么对比都看不出差别但只要高频信息没被彻底破坏就能反算出来。这是一笔鲁棒性换容量的买卖嵌入的文字越多抗折腾的能力就越低。⚔️ 旋转、裁剪之后水印还在不在示例自带一套攻击脚本att.py挑最常见的两个场景旋转转 60° 再转回来水印可以完整读出裁剪/截屏不知道被裁了哪里、缩放了多少倍时先用 recover.py 的estimate_crop_parameters估出攻击参数还原后再提取结果仍一致上图是嵌入盲水印后的输出下图是旋转 60° 的攻击效果。完整脚本见 examples/example_str.py椒盐噪声、缩放、遮挡、亮度等都有带断言的验证。什么场景该用它什么时候别用适合版权自证把作者信息、时间做成文字水印随作品发出内容溯源给不同渠道嵌不同标识事后可读出追踪传播路径防伪验证产品图、证书图里加一个看不见的记号注意平台二次压缩是最大敌人画质被压得很狠时提取准确率会下降容量有限文字嵌太多会明显削弱抗攻击能力两个密码和wm_bit长度要存好丢了就读不回来作品被转发过的人最省事的防身办法是先给成品打上盲水印。装好包照着 examples/example_str_multi.py 跑一遍5 分钟就能得到第一张带保护的图。【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表