实验2 空域信息隐藏算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息隐藏技术实验报告

一、实验目的

(1)了解信息隐藏算法的分类方式和分类依据

(2)理解空域信息隐藏算法的基本思想

(3)掌握最低有效位算法原理

(4)完成基于LSB的图像信息隐藏

二、实验内容

载体图像为24位真彩色bmp图像Lena.bmp,嵌入的秘密图像为黑白的bmp 图像LSB.bmp,要求采用空域信息隐藏算法,将LSB.bmp嵌入到Lena.bmp的最低有效位中,同屏显示原载体图像、需要嵌入的秘密图像、嵌入了秘密图像的伪装载体、提取的秘密图像。(编程语言不限)

三、实验步骤和设计思想

实现空域图像水印方法中的LSB算法:原始图像选取大小为512*512的elain 图像或者goldhill图像,选择一个LSB水印算法以及适当的水印序列;利用选定的水印嵌入算法将水印信息嵌入到原始图像中。在嵌入水印之后的图像中提取水印,是否可以判定图像中含有水印,同时计算含水印图像的峰值信噪比。将含有水印的图像缩小为256*256之后,再放大为512*512,这时再提取水印,是否可以判定图像中含有水印。

四、程序清单

% LSB 算法:

clear;

A=imread('elain.bmp');

B=A;

message='www`s homework';

m=length(message);

n=size(A);

k=1;

for i=1:n(1)

for j=1:n(2)

if k<=m %如果消息输入完成则为0

h=bitget(double(message(k)),8:-1:1);

else

h=[0,0,0,0,0,0,0,0];

end

c=bitget(A(i,j),8:-1:1);

if mod(j,8) == 0

p=8;

else

p=mod(j,8);

end

v=0;

for q=1:7

v=xor(v,c(q));

end

v=xor(v, h(p) );

B(i,j)=bitset(A(i,j),1,v);

if mod(j,8) == 0

k=k+1;

end

end

end

% 提取信息

out=char;

tmp=0 ;

t=1;

for i=1:n(1)

for j=1:n(2)

c=bitget(B(i,j),8:-1:1);

v=0;

for q=1:8

v=xor(v,c(q));

end

if mod(j,8)==0

p=1;

else

p=9-mod(j,8);

end

tmp=bitset(tmp,p,v);

if mod(j,8)==0

out(t)=char(tmp);

t=t+1;

tmp=0;

end

end

end

%显示图像

figure;

subplot(1,2,1);

image(A);

axis('square');

title('原始图像'); subplot(1,2,2);

imshow(B);

axis('square');

title('加入水印后图像'); out

五、实验调试记录

六、实验结果及其分析

lsb.fig

七、实验心得

1、了解隐显密码学相关的密码算法;

2、熟悉不同“位平面”对图像质量的影响;

3、掌握基于图像的LSB信息隐藏算法;

4、用MATLAB函数实现LSB信息隐藏;

5、掌握LSB信息提取算法。

相关文档
最新文档