信息隐藏——二值图像的信息隐藏

二值图像的信息隐藏

【实验目的】:

使用一个特定图像区域中黑像素的个数来编码秘密信息。
若某块P1 (Bi)>50%,则嵌入一个1,若P0 (Bi)>50%,则嵌入一个0。
在嵌入过程中,为达到希望的像素关系,需要对一些像素的颜色进行调整。

【实验内容】:

■一.用MATLAB函数实现二值图像信息隐藏
■二.用MATLAB函数实现二值图像隐藏信息的提取
■三.分析阈值R0,R1 以及健壮参数λ对实验结果的影响

一.用MATLAB函数实现二值图像信息隐藏

1.读取(预处理后的)目标图片与要隐藏的信息;
2.分析可用图像块:在对目标图片进行二值化处理后,使用available函数进行分析,选出可用的图像块。在这里,available函数对图片的性质进行了分析,调用computep1bi函数来计算每一块的p1(Bi)值,最终决定图片是否能存下需要隐藏的信息;
3.分析过后,如果发现图片可用,则进行信息嵌入。嵌入的过程也不只是之前实验所做的随机写入或者顺序写入,而是要进行分析。例如:在一片黑色的区域中心加一个白色的点就会显得很突兀,保密性大幅下降。在修改像素之前,要进行八连接测试,测试结束后根据结果决定是否修改;

二.用MATLAB函数实现二值图像隐藏信息的提取

1.总体与隐藏过程原理类似,只不过是操作相反而已。当然,提取步骤不需要进行八连接测试,也不需要分析可用图像块,只需要按照图片的内容逐块提取就可以了。

三.分析阈值R0,R1 以及健壮参数λ对实验结果的影响

1.健壮参数λ:
由于没有进行详细的数据集测试,所以没有大量的数据支持,但在实验中,我对λ的值进行了多次修改,根据打印出来的可用块数的比例会发现,λ越大时,可用块占所有块的比例越大。暂时不太清楚有没有一个极限值,但我的λ值最大到了10,效果都是如上所说。实际的健壮参数λ是和传输过程中可能发生改变的像素的百分比有关的,这与我们的实验结果也是相互呼应。
2.阙值R0,R1:
这两个值我的理解就更不是很透彻了,直到试验结束都不是特别理解他具体的限制,但在多次实验中我发现,增大这两个值的绝对差值也可以将隐藏容量增大。但书上解释说无限扩大R0和R1的距离会导致边界不足的情况发生,这点我没有做边界检测,不过我取了极端例子进行测试,效果正如书上所说。

【实验分析】:
1、请尽量使用曲线图、表等反映你的实验数据及性能
2、对照实验数据从理论上解释原因
3、如无明显必要,请不要大量粘贴实验效果图
Binaryhide.m:
在这里插入图片描述
在这里插入图片描述
输出结果如上。
在这里插入图片描述
加密消息如上。

Binaryextract.m:
在这里插入图片描述

【实验总结】:

总体比较顺利,书上的参考代码也比较好理解,但在最后有一个问题困扰了我很久。刚开始做的时候,我的加密消息是HizTNB!这样一个字符串,但提取后只出现了3位,与此同时程序warning了我可能因为容量问题导致结果有误,思考了一会之后我修改了λ的值,修改了R0,R1,都没有什么效果,后来我换了一张图片,就成功提取了所有位。可见隐写还是很依赖与载体,之前学习的LSB是使用RGB图片进行隐写,我感觉那种方式的信息容量应该会大很多。

【实验代码】

information_hidding

猜你喜欢

转载自blog.csdn.net/HizT_1999/article/details/106951296
今日推荐