资源描述:
《matlab数字图像加密》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MATLAB数字图像加密一、实验名称MATLAB数字图像加密二、实验目的熟悉MATLAB编译环境;掌握基本的矩阵操作;了解初级的加密算法。三、实验环境WindowsXP操作系统,MATLABR2010a编译环境四、实验原理将数字图像划分成块,对RGB矩阵进行转置、水平翻转、垂直翻转等变换,形成新的矩阵,实现对图像的加密。五、实验过程1.获取数字图像存入矩阵;2.获取矩阵大小存入变量;3.将矩阵划分成等大的4*4子矩阵;4.分别对存储图像RGB信息的矩阵进行转置、水平翻转、垂直翻转等变换;5.再次细化矩阵,将矩
2、阵划分成等大的16*16子矩阵;6.分别对存储图像RGB信息的矩阵进行转置、水平翻转、垂直翻转等变换;7.加密完成,存储加密后的图像;8.逆推过程,完成解密,存储解密后的图像。六、源程序a=imread('C:DocumentsandSettingsOwner×ÀÃæjmjmtp.jpg');subplot(2,2,1);imshow(a);[l,m,n]=size(a);x=l/4;y=m/4;fori=0:3forj=0:3a((j*x+1):((j+1)*x),(i*y+1):((i+1)*y
3、),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));endendsubplot(2,2,3);imshow(a)
4、;x=l/16;y=m/16;a(:,:,1)=flipud(a(:,:,1));a(:,:,2)=fliplr(a(:,:,2));a(:,:,3)=a(:,:,3)';fori=0:15forj=0:15a((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
5、*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));endendsubplot(2,2,2);imshow(a);imwrite(a,'jiamihou.jpg');fori=0:15forj=0:15a((j*x+1):((j+1)*x),(i*y+1):((i+1)*y),1)=a((j*x+1):((j+1)*x),(i*y+1):((i
6、+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));endenda(:,:,1)=flipud(a(:,:,1));a(:,:,2)=fliplr(a(:,:,2));a(:,:,3)
7、=a(:,:,3)';x=l/4;y=m/4;fori=0:3forj=0:3a((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)=flip
8、lr(a((j*x+1):((j+1)*x),(i*y+1):((i+1)*y),3));endendsubplot(2,2,4);imshow(a);imwrite(a,'jiemihou.jpg');一、实验结果原图片加密后的图片解密后的图片一、实验分析优点:该加密算法原理简单,编程易实现,加密效果较好。缺点:解密过程简便,易破解。