ARTICLE DETAIL

资讯详情

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

5分钟上手 blind_watermark:无需原图的 Python 图片盲水印指南

5分钟上手 blind_watermark:无需原图的 Python 图片盲水印指南 5分钟上手 blind_watermark无需原图的 Python 图片盲水印指南【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark你发布一张插画到网上几天后在别人的主页上又看到它——没署名、没痕迹维权很难自证。有一种更安静的做法把信息藏进图片内部嵌入后人眼看不见提取时不需要原图。这就是盲水印blind_watermark 是一个做这件事的 Python 开源库把水印写进图片之后只凭带水印的图就能把水印读回来。这篇教程按装好 → 跑通 → 懂原理 → 验证抗攻击 → 选型的顺序走一遍。安装 blind_watermark跑通第一条嵌入与提取一行命令装好pip install blind-watermark要求 Python 3.5依赖 numpy、opencv-python、PyWavelets 三个包Windows、Linux、macOS 均可。安装后你得到两样东西WaterMark这个 Python 类和一个同名命令行工具——不想写代码时blind_watermark --embed --pwd 1234 原图.jpg 水印文字 输出.png一条命令即可嵌入提取用--extract并传--wm_shape实现见 cli_tools.py。最小可运行的 Python 示例嵌入与提取各几行from blind_watermark import WaterMark # 嵌入读原图 → 读水印 → 写出带水印的图 bwm WaterMark(password_img1, password_wm1) bwm.read_img(examples/pic/ori_img.jpeg) bwm.read_wm(creator: zhangsan, 2026-09, modestr) bwm.embed(output/embedded.png) len_wm len(bwm.wm_bit) # 记下水印位长提取时要用 # 提取只需要带水印的图 同样的密码 位长 bwm2 WaterMark(password_img1, password_wm1) result bwm2.extract(output/embedded.png, wm_shapelen_wm, modestr) print(result)四个方法各管一段read_img读入原图read_wm装载水印内容embed把结果写盘extract从文件读回水印。两个新手容易踩的点提取方必须知道水印位长。str 模式先记下len(bwm.wm_bit)提取时经wm_shape传回img 模式传水印图的形状例如(128, 128)。password_img与password_wm是两把独立的密码前者决定水印写在图片哪些位置后者决定水印按什么随机模式生成。嵌入与提取两边必须一致任何一边换个值提出来都是乱码。提取方手里没有原图靠这两个密码完成定位——这正是无需原图的水印提取能成立的前提。read_wm的mode支持三种内容str文字、img图片仓库示例嵌入 64×64 的小图、bit比特流。img 模式提取时还原成一张图bit 模式得到 0~1 之间的实数、【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表