matlab数字图像加密

matlab数字图像加密
matlab数字图像加密

MATLAB数字图像加密

一、实验名称

MATLAB数字图像加密

二、实验目的

熟悉MATLAB编译环境;

掌握基本的矩阵操作;

了解初级的加密算法。

三、实验环境

WindowsXP操作系统,MATLABR2010a编译环境

四、实验原理

将数字图像划分成块,对RGB矩阵进行转置、水平翻转、垂直翻转等变换,形成新的矩阵,实现对图像的加密。

五、实验过程

1.获取数字图像存入矩阵;

2.获取矩阵大小存入变量;

3.将矩阵划分成等大的4*4子矩阵;

4.分别对存储图像RGB信息的矩阵进行转置、水平翻转、垂直翻转等变换;

5.再次细化矩阵,将矩阵划分成等大的16*16子矩阵;

6.分别对存储图像RGB信息的矩阵进行转置、水平翻转、垂直翻转等变换;

7.加密完成,存储加密后的图像;

8.逆推过程,完成解密,存储解密后的图像。

六、源程序

a=imread('C:\Documents and Settings\Owner\×à??\jm\jmtp.jpg');

subplot(2,2,1);

imshow(a);

[l,m,n]=size(a);

x=l/4;

y=m/4;

for i=0:3

for j=0:3

a((j*x+1):((j+1)*x),(i*y+1):((i+1)*y),1)=a((j*x+1):((j+1)*x),(i*y+1):

((i+1)*y),1)';

a((j*x+1):((j+1)*x),(i*y+1):((i+1)*y),2)=flipud(a((j*x+1):((j+1)*x),( i*y+1):((i+1)*y),2));

a((j*x+1):((j+1)*x),(i*y+1):((i+1)*y),3)=fliplr(a((j*x+1):((j+1)*x),( i*y+1):((i+1)*y),3));

end

end

subplot(2,2,3);

imshow(a);

x=l/16;

y=m/16;

a(:,:,1)=flipud(a(:,:,1));

a(:,:,2)=fliplr(a(:,:,2));

a(:,:,3)=a(:,:,3)';

for i=0:15

for j=0:15

a((j*x+1):((j+1)*x),(i*y+1):((i+1)*y),1)=a((j*x+1):((j+1)*x),(i*y+1): ((i+1)*y),1)';

a((j*x+1):((j+1)*x),(i*y+1):((i+1)*y),2)=flipud(a((j*x+1):((j+1)*x),( i*y+1):((i+1)*y),2));

a((j*x+1):((j+1)*x),(i*y+1):((i+1)*y),3)=fliplr(a((j*x+1):((j+1)*x),( i*y+1):((i+1)*y),3));

end

end

subplot(2,2,2);

imshow(a);

imwrite(a,'jiamihou.jpg');

for i=0:15

for j=0:15

a((j*x+1):((j+1)*x),(i*y+1):((i+1)*y),1)=a((j*x+1):((j+1)*x),(i*y+1): ((i+1)*y),1)';

a((j*x+1):((j+1)*x),(i*y+1):((i+1)*y),2)=flipud(a((j*x+1):((j+1)*x),( i*y+1):((i+1)*y),2));

a((j*x+1):((j+1)*x),(i*y+1):((i+1)*y),3)=fliplr(a((j*x+1):((j+1)*x),( i*y+1):((i+1)*y),3));

end

end

a(:,:,1)=flipud(a(:,:,1));

a(:,:,2)=fliplr(a(:,:,2));

a(:,:,3)=a(:,:,3)';

x=l/4;

y=m/4;

for i=0:3

for j=0:3

a((j*x+1):((j+1)*x),(i*y+1):((i+1)*y),1)=a((j*x+1):((j+1)*x),(i*y+1): ((i+1)*y),1)';

a((j*x+1):((j+1)*x),(i*y+1):((i+1)*y),2)=flipud(a((j*x+1):((j+1)*x),( i*y+1):((i+1)*y),2));

a((j*x+1):((j+1)*x),(i*y+1):((i+1)*y),3)=fliplr(a((j*x+1):((j+1)*x),( i*y+1):((i+1)*y),3));

end

end

subplot(2,2,4);

imshow(a);

imwrite(a,'jiemihou.jpg');

七、实验结果

原图片

加密后的图片解密后的图片

八、实验分析

优点:该加密算法原理简单,编程易实现,加密效果较好。缺点:解密过程简便,易破解。

相关主题
相关文档
最新文档