Python数字信号处理——利用块间系数相关性的DCT域鲁棒盲图像水印(PyQT5界面)
1.简单介绍
参考文献:https://doi.org/10.1016/j.ins.2019.11.005
提出了一种鲁棒透明的水印方法,利用基于块的离散余弦变换(DCT)系数修改。计算两个块的DCT系数之差,并基于水印位进行修改,以将该差调整到预定范围。阵列基函数左上角的第一个系数称为直流(DC)系数,而其余的包括交流(AC)系数。DCT系数修改的程度取决于按之字形序列排序的AC系数的DC系数和中值。
在初始阶段,原始图像的每个像素值减去128,使其范围从0–255变为-128到127。然后,将图像分割成不重叠的8×8像素块,并对每个块执行离散余弦变换(DCT)。DCT变换将图像从空间域转换到频率域,其中低频部分(包括DC系数和前九个低频AC系数)被认为是图像的关键区域,不应进行修改。
在水印嵌入阶段,通过计算相邻块之间的DCT系数差异来嵌入水印比特。根据Diff的值,选择合适的DCT系数并进行修改,以确保水印比特的嵌入,同时尽量避免图像质量下降。水印的嵌入过程通过调整DCT系数,将其移入预定的Diff区域,从而实现鲁棒且难以察觉的水印嵌入。
水印提取阶段 ,通过减去128、分块、执行DCT并计算差异,提取水印信息。提取过程中,计算DCT系数的差异并与预定的阈值比较,进而恢复出水印。通过使用伪随机密钥,能够精确地从图像中提取出嵌入的水印。
2.实验结果
Python数字信号处理——利用块间系数相关性的DCT域鲁棒盲图像水印(PyQT5界面)
最后:
小编会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!