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

资讯详情

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

3 分钟看懂 blind_watermark:Python 图片盲水印嵌入与提取完整指南

3 分钟看懂 blind_watermark:Python 图片盲水印嵌入与提取完整指南 3 分钟看懂 blind_watermarkPython 图片盲水印嵌入与提取完整指南【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermarkblind_watermark 是一个 Python 图片盲水印工具它把水印信息藏进照片的频域背景里肉眼几乎看不出需要时又能原样取回而且提取水印不用原图。这篇 blind_watermark 教程带你搞清三件事——它是干什么的、怎么装、怎么用以及为什么它比贴个透明 logo 更靠谱。图片被盗用后你如何自证原创你做好的设计图发上网隔天就被别人拿去卖。想维权却拿不出这是我原创的硬证据可见水印一眼就被抹掉而传统数字水印往往得拿着原图去比对原图一旦丢了就无从下手。盲水印正是为这种场景准备的。它先把信息偷偷埋进图里事后再取出来对质过程中你手里那张被处理过的图就是证据。 它是什么提取无需原图的 Python 图片盲水印一句话blind_watermark 是嵌进图片里的隐形水印提取时不需要原始图片。和可见水印相比它不贴 logo、不盖字肉眼基本看不出差别和需要原图比对的传统水印相比它只凭被处理过的图就能把信息解出来适合原图可能已经不在手上的维权场景。它支持三种水印文字、图片、比特流。左是原图右是嵌入水印后的图两张看起来几乎一样但右边已能取回完整水印信息。 一行命令安装 最小可用示例依赖只有 numpy、opencv-python、PyWavelets 三个库装包时会自动装好。支持 Windows、Linux、macOSPython ≥ 3.5。pip install blind-watermark 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是密码提取时务必和嵌入时一致。想在代码里用几行就够from blind_watermark import WaterMark bwm WaterMark(password_img1, password_wm1) bwm.read_img(examples/pic/ori_img.jpeg) bwm.read_wm(你的水印文字, modestr) bwm.embed(examples/output/embedded.png)嵌入后记下水印比特长度等于水印比特数提取时用它当wm_shapebwm WaterMark(password_img1, password_wm1) print(bwm.extract(examples/output/embedded.png, wm_shape6, modestr))接口见 WaterMark 主类更多写法参考 完整测试示例。 旋转、噪声、缩放被攻击后还能提取吗仓库自带一组攻击测试把打水印的图旋转 45 度、加椒盐噪声、缩放、裁剪、遮挡后再提取。示例中这些情况下都能把水印文字完整取回具体成功率以仓库文档为准。攻击脚本在 att.py。 原理速览DWT-DCT-SVD 是怎么藏进去的不用记公式记住三步。第一步把图转成 YUV一种把图拆成亮度加颜色通道的表示法再做小波变换 DWT把图拆成低频背景 高频细节只动背景。频域可以理解为不按每个像素、而按变化快慢来描述一张图。第二步把背景切成 4×4 小块每块做余弦变换 DCT把像素信息压成频率成分。第三步对每块做奇异值分解 SVD把矩阵拆成几个代表主要信息的数值把水印的 0/1 编码进最大的两个奇异值再逆变换还原人眼看不出差别。抗攻击靠两点同一个 0/1 会在许多块、三个通道里重复写入提取时取平均个别块被破坏也不影响整体提取时再用密码把乱序还原。核心逻辑在 bwm_core.py参数 d1、d2 用来在更鲁棒和更清晰之间权衡。场景与选型建议版权、溯源、防伪版权保护用文字水印modestr写明署名加时间戳被盗后一条提取命令即可当举证材料。内容溯源用图片水印modeimg嵌入二维码或编号追踪内容在传播链上的流向。防伪验证用比特流modebit嵌入加密后的短数据提取结果是 0~1 的浮点自行卡阈值即可。一句话收尾blind_watermark 让你一行 pip 命令就能给图片加隐形水印靠 DWT-DCT-SVD 三重变换藏在频域里提取不用原图还支持文字、图片、比特流三种模式。挑一张你真正在乎的图照上面的最小示例跑一遍几分钟就能亲眼确认图被改了也拿得回来。【免费下载链接】blind_watermarkBlindInvisible Watermark 图片盲水印提取水印无须原图项目地址: https://gitcode.com/GitHub_Trending/bl/blind_watermark创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表