保护版权,用 Python 为图片添加盲水印

article/2025/11/7 11:16:20

如果你想保护自己的原创图片,那最好的方式就是为图片添加盲水印,盲水印就是图片有水印但人眼看不出来,需要通过程序才能提取水印,相当于隐形“盖章”,可以用在数据泄露溯源、版权保护等场景。今天分享如何用 Python 为图片添加盲水印。

为图片添加盲水印,自然是搜索相关的工具,通常情况下,我会去 GitHub 输入英文关键字进行搜索,搜索结果如下:

5676e54e9c39421369ae402f3498be1a.png

选择 star 数量最多的通常错不了,guofei9987/blind_watermark 试了一下,果然是最好用的,特点:

  • 简单。解析水印图时无需原图

  • 抗攻击。水印图剪裁、旋转都不会破坏图中的盲水印

  • 支持密码加密

以下是其使用方法,主要内容:

  • 1、安装

  • 2、添加文本水印与提取

  • 3、添加图片水印与提取

  • 4、抗攻击能力

  • 5、原理

1、安装

安装正式版:

pip install blind-watermark

我安装后使用的时候报错:ModuleNotFoundError: No module named 'pywt',此时,可以通过 pip install pywavelets 来解决。

安装开发版本:

git clone git@github.com:guofei9987/blind_watermark.git
cd blind_watermark
pip install .

该工具用到的其他库:

numpy>=1.17.0
opencv-python
setuptools
PyWavelets

2、添加文本水印与提取

添加文本水印:

from blind_watermark import WaterMark## 设置密码,默认是 1
bwm1 = WaterMark(password_img=1, password_wm=1)## 读取原始图片
bwm1.read_img('pic/ori_img.jpg')## 定义水印文本
wm = '@guofei9987 开源万岁!'## 合并文本并输出新的图片
bwm1.read_wm(wm, mode='str')
bwm1.embed('output/embedded.png')## 输出结果
len_wm = len(bwm1.wm_bit)
print('Put down the length of wm_bit {len_wm}'.format(len_wm=len_wm))

提取文本水印

bwm1 = WaterMark(password_img=1, password_wm=1)
wm_extract = bwm1.extract('output/embedded.png', wm_shape=len_wm, mode='str')
print(wm_extract)

3、添加图片水印与提取

添加图片水印

from blind_watermark import WaterMarkbwm1 = WaterMark(password_wm=1, password_img=1)## 读取原始图片
bwm1.read_img('pic/ori_img.jpg')## 读取水印图片
bwm1.read_wm('pic/watermark.png')## 合并
bwm1.embed('output/embedded.png')

提取图片水印

bwm1 = WaterMark(password_wm=1, password_img=1)
# notice that wm_shape is necessary
bwm1.extract(filename='output/embedded.png', wm_shape=(128, 128), out_wm_name='output/extracted.png', )

4、抗攻击能力

73a72bf5a0a07724010a2ff269d30a40.png

附各攻击的方法:

  • 旋转攻击.py[1]

  • 多遮挡攻击.py[2]

  • 横向裁剪攻击.py[3]

  • 纵向裁剪攻击.py[4]

  • 缩放攻击.py[5]

  • 椒盐击.py[6]

  • 亮度调高攻击.py[7]

  • 亮度调暗攻击.py[8]

5、原理

(小波转换技术)[https://en.wikipedia.org/wiki/Wavelet_transform]

最后的话

本文分享了 Python 为图片添加盲水印的方法,如果觉得有帮助,请点赞、在看、转发,关注公众号「Python七号」,每天学习一个小技术。

留言讨论

参考资料

[1]

旋转攻击.py: https://github.com/guofei9987/blind_watermark/blob/master/examples/旋转攻击.py

[2]

多遮挡攻击.py: https://github.com/guofei9987/blind_watermark/blob/master/examples/多遮挡攻击.py

[3]

横向裁剪攻击.py: https://github.com/guofei9987/blind_watermark/blob/master/examples/横向裁剪攻击.py

[4]

纵向裁剪攻击.py: https://github.com/guofei9987/blind_watermark/blob/master/examples/纵向裁剪攻击.py

[5]

缩放攻击.py: https://github.com/guofei9987/blind_watermark/blob/master/examples/缩放攻击.py

[6]

椒盐击.py: https://github.com/guofei9987/blind_watermark/blob/master/examples/椒盐攻击.py

[7]

亮度调高攻击.py: https://github.com/guofei9987/blind_watermark/blob/master/examples/亮度调高攻击.py

[8]

亮度调暗攻击.py: https://github.com/guofei9987/blind_watermark/blob/master/examples/亮度调低攻击.py


http://chatgpt.dhexx.cn/article/tDNs7y15.shtml

相关文章

opencv实现盲水印

主要用于图片版权追溯,用户指纹识别等场景,保证用户版权以及作为防盗反爬关键性法律证据。 opencv环境 windows 解压opencv-3.4.2.tar.gz,项目运行是在VM options中加入库环境-Djava.library.pathD:\opencv3.4.2\opencv\build\java\x64;D:…

盲水印添加,获取接口

添加水印,水印生成,获取水印 一、接口介绍 通过上传原始图片和水印图,生成带有隐性水印图的图片。既保持图片的美观性,又能保证图片的版权防护与追踪。这样便于在不破坏原有图片的情况下,实现版权保护。 二、功能体验 三、特色优…

java 添加盲水印_图片加数字盲水印

本文通过一个的实验,简要介绍频域手段添加数字盲水印的方法,并进一步验证其抗攻击性。在上述实验的基础上,总结躲避数字盲水印的方法。(多图预警) 本文分为五个部分,第一部分综述;第二部分频域数字盲水印制作原理介绍&…

使用 Python 给图片添加水印,其中一种还是隐形的盲水印呢!

文章目录 使用 Pillow 库为图片添加半透明水印使用 blind_watermark 库为图片添加盲水印安装嵌入水印提取水印 如何给图片添加水印呢?在 Python 的世界里,有多种方法可以为图片添加水印。 其中一种方法,可以使用大名鼎鼎 Pillow 库&#xff…

python 3.6 盲水印脚本安装说明

python 3.6 盲水印脚本安装说明 安装盲水印踩了不少坑,所以记录一下。 本机环境: windows10 python3.6 脚本安装地址: BlindWaterMark 下载解压即可 安装脚本的依赖库 opencv-python 4.2.0.34 matplotlib 2.1.1 安装命令: …

信息隐藏-图像盲水印实现

相关知识 目前水印大抵可分为两种,可见和不可见,可见水印大多用来标记或声明版权,或防盗用冒用,但在影院、绘画等场景下,可见性水印会极大影响用户体验,所以产生了盲水印的概念。 盲水印即看不见的水印&am…

Python给图片添加盲水印

文章目录 简介安装初试遇到的坑参考文献 简介 盲水印就是图片有水印但人眼看不出来,需要通过程序才能提取水印,相当于隐形“盖章”,可以用在数据泄露溯源、版权保护等场景。 该库出自阿里巴巴安全团队,强大之处: 解…

Opencv实现盲水印技术(三)——傅里叶变换算法及盲水印实现

前言 之前的文章中,介绍了如何构建Java工程和Java Web工程,本文将简单介绍对傅里叶变换的理解,以及使用opencv实现盲水印。关于傅里叶变换,有篇博文介绍的很详细,链接地址为:看了此文你还不了解傅里叶变换&…

双图+盲水印

1.双图 打开压缩包,发现有两张图片 first1和second.png,使用Stegsolve打开first1.png进行一次异或处理 然后分析选择结合second.png得到 用stegslove对二维码进行运算得到三张二维码 扫描结果是DES 6XaMMbM7 和一长串字符,很显然是des加密&a…

Python 数字图片盲水印

blind-watermark 基于傅里叶变换的数字盲水印 文档: https://BlindWatermark.github.io/blind_watermark/#/zh/Source code: https://github.com/guofei9987/blind_watermark install pip install blind-watermarkFor the current developer version: git clon…

watermark前端js盲水印添加方法

1,引入js <script src"/Public/js/watermark-dom/watermark.js" language"JavaScript"></script> 2,实例化对象 <script language"JavaScript"> //参数详情请参考watermark.js 文件里的说明 window.onload function(){wate…

给你的web页面添加盲水印,附带检盲水印方案

应用场景 在一些敏感系统有的时候我们为了防止别人截图或追溯图片源头是谁发的。我们需要在页面上埋下我们的隐形水印。 开始做 埋水印 github上有很多水印的js插件&#xff0c;download下来一个改一改&#xff0c;源码见最后附录。 改动内容&#xff1a;增加了判断dom被人…

有意思的数字盲水印的简单的实现。

早期大约是10年前从一本数字图像处理上看到过数字水印的概念&#xff0c;觉得确实一种很有意思的东西&#xff0c;那个时候主要就是基于LSB的图像信息的隐藏&#xff0c;这种在空域里的方法有较大的缺陷&#xff0c;鲁棒性是比较差的。随便一个后期的都会造成水印的丢失&#x…

python脚本实现盲水印提取和添加

python脚本实现盲水印提取和添加 首先github上找个BlindWaterMark-master文件下载一下&#xff0c;打开后是我这个样子 在python里面添加两个库&#xff0c;python.exe目录上方输入cmd pip install opencv-python python.exe -m pip install matplotlib新手这里装库的时候&am…

文字隐写术-盲水印研究笔记

gitee 开源代码(java) shuiyin: blind watermark 盲水印技术实现 java 实现版权保护 - Gitee.comhttps://gitee.com/chejiangyi/shuiyin/tree/master 需求概述 研究盲水印对于版权保护的效果和能力 研究尝试概述 水印实现: 大部分的python或者java算法都基于频域的盲水印效果…

web系统添加盲水印

前言 为增加系统安全性&#xff0c;避免重要敏感信息通过截图方式泄露&#xff0c;对web页面增加盲水印标识&#xff0c;标注系统名称&#xff0c;登陆人&#xff0c;当前时间等信息&#xff0c;这里的盲水印指肉眼不可见的html水印 增加水印 引入watermark.js调用 watermar…

【OpenCV 例程 300篇】219. 添加数字水印(盲水印)

OpenCV 例程200篇 总目录 【youcans 的 OpenCV 例程 300篇】219. 添加数字水印&#xff08;盲水印&#xff09; 8.2 添加数字盲水印 数字水印&#xff0c;是指将特征信息嵌入音频、图像或是视频等数字信号中。 数字水印分为明水印和盲水印&#xff08;blind watermark&#…

照片里的盲水印

这个题是安恒月赛里面的一道misc类型的题&#xff0c;在CTF中misc所谓最考验你的脑洞和检验你的赛事水平&#xff08;赛棍&#xff1f;&#xff1f;&#xff1f;&#xff09; 但是这个方面还是要看一下&#xff0c;就当做开发脑力了。 题目&#xff1a;暴力可解 题目文件 下载…

[python] 基于blind-watermark库添加图片盲水印

blind-watermark是一个能够给图片添加/解析基于频域的数字盲水印的Python库。图像水印image watermark是指在图片里添加文本或图形&#xff0c;以标记图片的来源。但是图像水印会破坏原图。因此另外一种水印形式&#xff0c;即图像盲水印blind image watermark在实践中更多地用…

图片盲水印软件

bulid_watermark_gui Blind&Invisible Watermark &#xff08;图片盲水印&#xff0c;提取水印无须原图&#xff01;) 增加图形界面 项目地址&#xff1a;github开源 软件下载地址&#xff1a;无需环境软件下载 how to use pip install -r requirements.txt 运行main.py…