Featured image of post 数字盲水印

数字盲水印

自今天之前, 这个词对我来说还是个生词. 作为一个也经历过 996 的我, 关注 996ICU 也已经好几天了~ 从 5000 星看着它到这会的 17W 星.

在这个项目中看到了 数字盲水印 这个词.

为防止某些公司使用数字盲水印对截屏进行追踪,建议使用屏摄的方法采集图片证据。如果截图需要放在 GitHub,请放在blacklist/img文件夹里。

数字盲水印

这两个词分开介绍

数字

说白了就是数据资,源图,音像等.

盲水印

所谓盲水印,是指人感知不到的水印,包括看不到或听不见(没错,数字盲水印也能够用于音频)。其主要应用于音像作品、数字图书等,目的是,在不破坏原始作品的情况下,实现版权的防护与追踪。

特点

  • 不影响图片本身的大小.
  • 不改变图片可见效果

数字盲水印给资源添加了冗余信息,但在编码和压缩情况不变的情况下,不会使原始图像大小产生变化(原来是 2MB 添加盲水印之后还是 2MB)。

方法

添加数字盲水印的方法简单可分为空域方法和频域方法

空域方法

空域是指空间域,我们日常所见的图像就是空域。空域添加数字水印的方法是在空间域直接对图像操作(之所以说的这么绕,是因为不仅仅原图是空域,原图的差分等等也是空域),比如将水印直接叠加在图像上。

频域方法

我们常说一个音有多高,这个音高是指频率;同样,图像灰度变化强烈的情况,也可以视为图像的频率。频域添加数字水印的方法,是指通过某种变换手段(傅里叶变换,离散余弦变换,小波变换等)将图像变换到频域(小波域),在频域对图像添加水印,再通过逆变换,将图像转换为空间域。相对于空域手段,频域手段隐匿性更强,抗攻击性更高。

关于频域,傅里叶级详细看这个文章

区别

相对于空域方法,频域加盲水印的方法隐匿性更强,抵抗攻击能力更强。这类算法解水印困难,你不知道水印加在那个频段,而且受到攻击往往会破坏图像原本内容。

频域实现

以下实现方式摘自知乎主 fuqiang liu 的文章.

信号是有频率的,一个信号可以看做是无数个不同阶的正弦信号的的叠加。
F(\omega)=\int_{-\infty }^{+\infty }  f(t)e^{-i\omega t}dt
上式为傅里叶变换公式,f(t)是指时域信号(对于信号我们说时域,因为是与时间有关的,而图像我们往往说空域,与空间有关),\omega 是指频率。想要对傅里叶变换有深入了解的同学,建议看一下《信号与系统》或者《数字信号处理》的教材,里面系统介绍了傅里叶变换、快速傅里叶变换、拉普拉斯变换、z 变换等。

下面以傅里叶变换为例,介绍通过频域给图像添加数4f09483bfa5e0601aa77ed516bdf46fd_hd.jpg
字盲水印的方法。注意,因为图像是离散信号,我们实际用的是离散傅里叶变换,在本文采用的都是二维快速傅里叶变换,快速傅里叶变换与离散时间傅里叶变换等价,通过蝶型归并的手段,速度更快。下文中傅里叶变换均为二维快速傅里叶变换。

数字盲水印-2023-11-30-14-02-21

水印提取是水印叠加的逆过程

数字盲水印-2023-11-30-14-02-26

后记

先记下这个以后自己写个例子用.