最近今天在测试火山引擎的ImageX处理的时候发现提供一种能力叫盲水印;
看盲水印介绍内容:
使用方法测试:
在放访问某个url时候会自动添加上盲水印;添加完毕后,会重新提取图片里面的信息;
我在其他公众号上看到这么一个文章,我猜测他们是一个原理,毕竟火山引擎属于字节跳动的业务,但算法是否一个就不知道了;
相关文章:
————————————————
一、前言
1.1、暗水印是什么
广义来说,暗水印可以理解为,在一些载体数据中添加隐藏标记,这些标记在人类和机器可轻易感知的范围之外。相较于常见的明水印,比如图片和视频中的公司logo、纸币中的水印纹理等。暗水印对大部分感知系统来说是透明的,不可见的。下面通过两个例子来说明。
1.1.1隐藏在白纸中的符号
比如下图是中科院上海某化学所的隐写耐火纸,可以看到在一张看似普通的白纸之中,却隐藏了一个图案和字母。这个图案和字母就属于暗水印。它可以用来隐秘传输信息、做防伪标识等。
1.1.2隐藏在图片中的二维码
下面这个例子可能就比较少见了。它是 2020 ByteCTF(字节跳动网络安全攻防大赛) Misc 的一道隐写题目。通过隐藏水印的方法,将一个有意思的二维码嵌入到下面这幅彩图中,而这个二维码是肉眼不可见的。
加有暗水印的图像:
图像中的隐藏信息:
1.2常见的暗水印技术
这个分类是基于传输载体进行分类的。一般来说暗水印可以隐藏在大部分多媒体传输和存储载体中,比如图片、视频、音频、邮件、文档等都是不错的载体。
1.2.1图像水印
基于图像的暗水印技术是暗水印里面最成熟的一种,嵌入方法也多种多样。根据嵌入维度不同,又可以细分为空域水印和变换域水印。空域水印可以简单的理解为直接对解码后的图像像素值进行编辑和嵌入信息;变换域水印是将图像的像素信息转换到变换域,然后在变换域添加信息后再转换到空域,这个过程中空域信息也会被修改。所以变换域水印也可以理解为间接的空域水印。
1.2.1.1空域水印
直接选取空域特定位置的像素值进行修改来嵌入信息。空间域水印的难点在于如何在