当前位置:文档之家› 实验二图像DCT域信息隐藏实验

实验二图像DCT域信息隐藏实验

综合评分:实验二:图像DCT域信息隐藏实验
【实验目的】:
一、简单复习变换域信息隐藏的基本思想
二、用 MATLAB实现图像DCT相关操作
三、完成基于图像DCT的信息隐藏实验
【实验内容】:(请将你实验完成的项目涂“■”)
实验完成形式:
■用MA TLAB函数实现图像DCT域信息隐藏和提取
■用MA TLAB命令行方式实现图像DCT域信息隐藏和提取
□其它:(请注明)
实验选择载体:
■256×256灰度图像■256×256RGB图像■任意大小的RGB图像
实验效果和分析:
■分析了健壮性参数α与鲁棒性的关系
■能随机选择嵌入块(考虑安全性因素)
■嵌入块均匀分布于载体
□信息提取的检错/纠错
■分析了健壮性参数α与不可见性的关系
□其它:(请注明)
【实验工具及平台】:
■Windows+Matlab■其它:(请注明)WinHex
【实验涉及到的相关算法】:
在一个图像块中调整两个(或多个) DCT系数的相对大小。

将描述一个使用数字图像作为载体的系统。

在编码处理中,发送者将载体图像分成8×8的像素块,每一块只精确地编码一个秘密信息位。

嵌入过程开始时,首先伪随机地选择一个图像块bi,用它对第i个消息比
特进行编码。

令Bi=D{bi}为DCT变换后的图像块。

在通信开始前,发送者和接收者必须对嵌入过程中使用的两个DCT系数的位置达成一致,让我们用(u1,v1)和(u2,v2)来表示这两个索引。

这两个系数应该相应于余弦变换的中频,确保信息保存在信号的重要部位(从而使嵌入信息不容易因JPEG压缩而完全丢失)。

进一步而言,人们普遍认为中频
DCT系数有相似的数量级,我们可以假定嵌入过程不会使载体产生严重降质。

因为构造的系统要在抵抗JPEG压缩方面是健壮的。

我们就选择在JPEG压缩算法中它们的量化值一样的那些DCT系数。

根据表2.1,系数(4,1)和(3,2),或者(1,2)和(3,0)是比较好的。

编码方法:若块Bi (u1,v1) >Bi(u2,v2) 就编码为“1”,否则编码为“0”。

在编码阶段,如果相对大小与要编码的比特不匹配,就相互交换两个系数。

由于JPEG 压缩(在量化阶段)能影响系数的相对大小,算法应通过在两个系数中加随机值,以确保对某个x>0,使得|Bi (u1,v1)-Bi(u2,v2) |>x。

DCT隐秘载体编码过程:
for i =1,...,l (M) do
选取一隐蔽数据块bi
Bi=D{bi}
if m=0 then
if Bi (u1,v1)>Bi (u2,v2)then
交换Bi (u1,v1)和Bi (u2,v2)
end if
else
if Bi (u1,v1)<Bi (u2,v2)then
交换Bi (u1,v1)和Bi (u2,v2)
end if
end if
调整两个数据块的值以使得|Bi (u1,v1)-Bi (u2,v2)| >x end for
DCT隐秘载体解码过程:
for i =1,...,l (M) do
获取与第i位相关的隐蔽数据块bi
Bi=D{bi}
if Bi (u1,v1) ≤Bi (u2,v2)B then
m=0
else
m=1
end if
end for
【实验分析】:
实验1.1 图像整体DCT
原始图像图像DCT系数的光谱表示
偏蓝色的区域灰度级越高,偏红色的区域灰度级越低。

由右图知,左上低频系数比右下高频系数高,因为频率反映了灰度级变化的剧烈程度,正常图像一般灰度级变化程度平缓自然,只有在少数的边缘处才会有明显突兀的变化。

实验1.2 熟悉图像分块DCT操作,如下图:
分析:
信息保存的重要位置在DCT变换后图像的左上低频处,白色块保留越多,原始信息保留越多,重构后的图像越接近原始图像。

DCT coefficients
Original Saturn Image
Reconstructed Image Error Image
实验1.3 进一步熟悉图像分块DCT操作,分析blocDCTmtx的数值分布特点:
分析:
高DCT系数集中在左上角和上、左边。

实验1.4 编写一个MATLAB函数,对输入的图像进行8×8分块DCT,并使用一个Mask 矩阵完成对图像的8×8分块压缩。

分析:
Mask掩码矩阵左上角的块为1,说明保留了主要信息,重构图像凭人眼觉察不到差异。

mask=[ 1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ];
%1为保留,0为压缩
原始图像压缩后的图像
图像细节
实验1.5 对一个图像进行8×8分块DCT,并将每个分块的(5,2)和(4,1)两个DCT系数交换,还原图像,ShowtoScreen。

分析:
中频的DCT系数有相似的数量级,嵌入过程不会导致载体产生严重降质。

因为构造的系统要抵抗JPEG压缩方面是健壮的。

原始图像
交换系数后的图像
图像细节
实验1.6 对一个图像进行8× 8分块DCT ,自己设计一个将每个分块的(5,2)和(4,1)两个DCT 系数的绝对差扩大到α的算法,并实现。

α为正数。

分析:
由于JPEG 压缩(在量化阶段)能影响系数的相对大小,应该确保对某个α>0,要使得()α>-2211,),(v u B v u B i i 。

α越大,算法抵抗JPEG 压缩的能力越健壮,然而图像质量越差。

图像细节
原始图像交换系数后的图像,alpha = 0.5
图像细节
图像细节
实验1.7 对一个图像进行8×8分块DCT,并根据秘密消息Msg顺序调整每个分块的(5,2)和(4,1)两个DCT系数,并将保证其绝对差大于α。

还原图像,WriteImage。

分析:
原始图像隐写图像,alpha = 0.2
图像细节
实验1.8 :将实验1.7导出的图像重新导入,并进行8×8分块DCT,根据每个分块的(5,2)和(4,1)两个DCT系数的关系,提取秘密消息Msg。

Msg: hj.txt:0001011001010110(16bits)
α:0.2
提取结果正确:
分析:
顺序选块很容易检测到,很明显地破坏了原始图像的特征分布,所以需要改进成随机均匀地选块以增强安全性。

1.9 优化1:随机顺序编码
原始图像隐写图像,alpha = 0.2
图像细节
1.10 优化2:适应各种大小和图像类型(灰度/RGB)
lenna_gray_512_jpg.jpg
Lenna_color_256_jpg.jpg
Lenna_color_512_jpg.jpg
原始图像隐写图像,alpha = 0.2
图像细节
原始图像隐写图像,alpha = 0.2
图像细节
原始图像隐写图像,alpha = 0.2
图像细节
隐藏前的DCT矩阵和隐藏信息后的DCT矩阵的局部截图
1.11 参数α与隐藏不可见性的关系:
Msg:hj.Txt
hj
原始图像隐写图像,alpha =10
图像细节
原始图像隐写图像,alpha =100
图像细节
Msg:chinese.txt
绿杨烟外晓寒轻,红杏枝头春意闹。

原始图

隐写图像
,alpha =100
图像细节
分析:控制阈值α越大,对图像的破坏越大。

1.12 参数α与隐藏鲁棒性的关系:
10
20
30
40
506070
80
90
100
00.050.10.150.20.250.30.350.40.45
0.5jpeg 压缩率
提取的信息和原始信息不同的百分比
控制阈值alpha 在JPEG 条件下对隐藏鲁棒性的影响
分析:α是为了避免在图像传输过程中使()11,v u B i 和()22,v u B i 的相对大小发生错位从而导致编码发生错误而引入的控制量,α越大,图像鲁棒性越强,不可感知性越差。

1.0=α
2.0=α
3.0=α。

相关主题