ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

图片加盲水印会糊吗?blind_watermark 回答新手最常问的 3 个问题

2026/9/12 16:55:01 拓冰建站 浏览量
图片加盲水印会糊吗?blind_watermark 回答新手最常问的 3 个问题 图片加盲水印会糊吗blind_watermark 回答新手最常问的 3 个问题【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark给图片嵌盲水印之前大多数人先担心三件事加水印会不会让图变糊被裁剪之后还能不能提出来提取时必须拿到原图吗blind_watermark 是一个 Python 图片水印工具把水印以人眼不可见的方式埋进图片提取盲水印时不需要原图图片被旋转、裁剪后也有机会完整找回。下面用仓库里自带的实测图逐题给你看答案。加水印后图会变糊吗原图和水印图叠一起看先看图说话。仓库 docs/ 目录里有一对对比图上面是原图下面是 embed 之后嵌入了文字水印的图。盲水印只以极小幅度修改频域系数每个像素的变化量很小人眼基本看不出差别——水印就像藏在像素噪声里的暗号肉眼读不到只有提取程序读得到。如果你要长期保存嵌入时还可以传 compression_ratio 参数控制输出体积数值越小文件越小具体在 blind_watermark/blind_watermark.py 的 embed 方法里。图片旋转 45° 之后盲水印还提得出来吗这是最实用的一节。仓库 README 里列过一组对抗测试旋转 45°、随机截图、多点遮挡、横向/纵向裁剪、缩放、椒盐噪声、亮度调整处理后从每张图里提取出的文字水印都与嵌入时一致。几张攻击效果图裁剪场景还多一步还原。examples/example_str.py 演示了完整链路先用 estimate_crop_parameters 推测裁剪位置和缩放比例再用 recover_crop 恢复成原始尺寸最后调用 extract 提取盲水印。这个脚本把旋转、遮挡、缩放、亮度等 6 类攻击各跑一遍每一步都用 assert 校验提取结果和原水印一致你可以直接照着跑。提取盲水印必须拿到原图吗不用但密码不能丢盲字就来自这里提取只靠带水印的那张图不需要原始文件参与对比这是它和传统需要原图配合的水印最大的区别。命令行两条命令就能完成嵌入和提取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注意提取要同时给对密码--pwd和水印比特长度--wm_shape。忘记其中任何一个就提不出来——盲不等于免密钥这两个数得自己保管好。两条命令装好 blind_watermark三个系统都能跑安装最简单的方式是直接装 PyPI 上的包pip install blind-watermark装完在 Python 里 from blind_watermark import WaterMark 就能用命令行里也有 blind_watermark 入口。源码兼容 Windows、Linux、macOSPython 3.5 以上版本信息见 README_cn.md。想跑仓库里的完整示例可以克隆项目再装依赖git clone https://gitcode.com/GitHub_Trending/bl/blind_watermark 进入目录后执行 pip install -r requirements.txt 即可。最小可运行示例8 行脚本嵌入加提取文字水印的完整流程就两步embed 嵌入、extract 提取。下面这段脚本可以原样保存运行from blind_watermark import WaterMark bwm WaterMark(password_img1, password_wm1) bwm.read_img(examples/pic/ori_img.jpeg) bwm.read_wm(guofei9987 开源万岁, modestr) bwm.embed(output/embedded.png) n len(bwm.wm_bit) # 记下比特长度提取时要传回去 bwm1 WaterMark(password_img1, password_wm1) print(bwm1.extract(output/embedded.png, wm_shapen, modestr))关键是 n len(bwm.wm_bit) 这一行嵌入时记下水印比特长度提取时作为 wm_shape 传回。examples/ 里还有 4 个变体example_str.py 是文字水印example_img.py 嵌入一张图片水印把水印图的形状作为 wm_shape 传入example_bit.py 嵌比特串example_demo.ipynb 是交互演示打开就能点着试。批量处理图片时给 WaterMark 传 processes 参数可以多进程并行速度见 README_cn.md。谁适合用 blind_watermark上手前知道这三条边界符合下面任意一条就值得试一下摄影师、设计师发布作品前给图片留一个隐形版权凭证不破坏画面内容平台、自媒体图片外流后能反向验证出处开发者在图片生成管线里加一层归属标记8 行代码就能接进去能力边界也说清楚避免预期错位提取需要密码和水印长度密钥丢了就等于水印作废仓库验证过的攻击是旋转、裁剪、缩放、椒盐、亮度这类常规操作深度重压缩、AI 重绘等更强处理没有把握目前只处理静态图片视频水印是未来可能的方向暂不可用行动建议就一句挑一张自己的图把 examples/example_str.py 跑通5 分钟内你对这套盲水印就有手感了。【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考