栅格数据嵌入不可见水印的方法总结
1.1.1 空间域算法
1.1.1.1 LSB算法(水印容量大,但是很脆弱)
将水印嵌入到到载体图像像素值得最低有效位,也称最不显著位,改变这一位置对载体图像的品质影响最小。
基本步骤:
- 将水印的十进制像素值转换为二进制水印数据;
- 二进制水印数据中的每一比特信息替换载体数据中的最低有效位。(嵌入水印)
- 在含有载体数据中的最低有效位二进制数据转换为十进制像素值,获得水印的图像(提取/检测水印)
1.1.1.2 PatchWork算法(鲁棒性强,水印容量低1bit)
在图像域上通过大量的模式冗余实现数字水印。
嵌入算法:
- 随机选择N对像素点(ai,bi);
- 使所有像素点ai的亮度平均值增加1;而所有像素点bi的亮度平均值减少1.
1.1.2 变换域的算法
1.1.2.1 DFT(线性变换、正交变换)
1、 数据亮度的调整只会改变DFT序列的首个系数,将水印信息嵌入除第一个系数外的其他序列,对栅格数据亮度的调整处理有抵抗能力
2、 数据的旋转处理改变DFT系数的相位,将水印信息嵌入到DFT系数的幅值中,能抵抗栅格数据的旋转处理
3、 数据的缩放影响DFT系数的幅度,将水印嵌入到DFT系数的相位中,能抵抗栅格数据的缩放处理
1.1.2.2 DCT(正交变换,有很高的数据压缩比)
1、 数据DCT变换后,信息能量集中在低频分量中,将水印嵌入到低频分量中,可抵抗数据压缩的攻击;将水印添加到中频或高频系数中,可抵抗添加噪声的攻击
1.1.2.3 DWT(时间(空间)-频率的局部分析)
将水印通过一定的规则嵌入小波低频分量或中高频分量中,对数据压缩、滤波具有鲁棒性。