- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于图像的部分加密 一、实验内容 设计型实验:用MATLAB设计并实现对图像的部分加密。 二、实验目的 了解图像数据系数特点,掌握离散小波变换基本操作。了解选择加密技术,使用MATLAB实现基于小波分解的对图像的部分加密算法,掌握利用加密技术实现访问权限控制的版权保护的方法。 三、实验原理 一级小波变换可将图像分解为4个子图:LL——逼近子图,代表输入图像水平和垂直两个方向的低频成分;HL——水平方向细节子图,它代表输入图像水平方向的高频成分和垂直方向的低频成分;LH——垂直方向细节子图,它代表输入图像水平方向的低频成分和垂直方向的高频成分;HH——对角线方向细节子图,它代表输入图像水平和垂直方向的高频成分。小波图像的各个子带分别对应了原图在不同尺度和分辨率下对原始图像的逼近,表现图像的能量集中于低频区域。高频区域表现的是图像边缘,轮廓和纹理在不同方向、不同尺度和不同频率下由细到粗的描述。有些数字水印方法可以嵌入在高频区域,达到视觉的不可察觉性。针对每个子带,还可以继续分解。 部分加密方法是:将原始图像进行二级小波分解,利用不同的子密钥对各个分量分别进行加密,将密文重构,通过逆变换得到加密图像。利用密钥控制用户权限,不同权限用户所能浏览图像的分辨率不同。 加密过程:利用密钥对图像的二维数据矩阵中的每个数进行异或(加密解密算法可选),基本公式是:m Xor y = z。式中m为原始数据,y为密钥,z为加密后的数据。 图3-1 部分加密流程图 图3-2 解密流程图 解密过程实际是提供了密码后对被加密的二维数据矩阵中的每个数进行再次异或,基本公式是:m Xor y Xor y = m。式中m为原始数据,y为密钥。 四、实验步骤与结果 ①读取图像文件数据: 在命令行中输入下述命令: [fn, pn] = uigetfile(*.bmp, 请选择图像文件); [x, map] = imread(strcat(pn, fn), bmp); I = rgb2gray(x); 说明: 读取图像文件 函数原型:A = imread(filename,fmt) 功能:读取fmt指定格式的图像文件内容 输入参数: filename:图像文件名,字符串 fmt:图像文件格式名,字符串,函数支持的图像格式包括:JPEG,TIFF,GIF,BMP等等。 返回参数:A:图像数据内容,整型 说明,imread的其它参数和用法,可使用help imread命令查找。 例:A=imread(‘src.bmp’),读取名为‘src.bmp’的bmp图像。当参数中不包括文件格式名时,函数尝试推断出文件格式。 A=imread(‘src.bmp’, ‘bmp’) 读取名为‘src.bmp’的bmp图像。效果与上述用法相同。 rgb2gray将RGB图像转换为灰度图。 代码和运行结果: [fn, pn] = uigetfile(*.bmp, 请选择图像文件); [x, map] = imread(strcat(pn, fn), bmp); I = rgb2gray(x); subplot(1,2,1); imshow(x); title(打开的原图像); subplot(1,2,2); imshow(I); title(变换后的灰度图像); 图4-1 读入图像过程 图4-2 读入图像结果 这里使用函数uigetfile()创建了一个文件对话框,可以用来动态打开所需要的文件,并设置格式筛选。 ②二维离散小波变换: 在命令行中输入下述命令: sx = size(I); [cA1, cH1, cV1, cD1] = dwt2(I, bior3.7); 说明: dwt2函数对输入参数进行二维一级离散小波变换并返回近似分量、水平细节分量、垂直细节分量和对角线细节分量。如果要对图像进行多级小波分解,使用wavedec2函数。 代码和运行结果: sx = size(I); [cA1, cH1, cV1, cD1] = dwt2(I, bior3.7); subplot(2,2,1); imshow(cA1); title(近似分量); subplot(2,2,2); imshow(cH1); title(水平细节分量); subplot(2,2,3); imshow(cV1); title(垂直细节分量); subplot(2,2,4); imshow(cD1); title(对角线细节分量); 图4-3 小波分量输出结果 ③二维离散小波逆变换 在命令行中输入下述命令: xsync = uint8(idwt2(cA1, cH1, cV1, cD1, bior3.7, sx)); A1 = uint8(idwt2(cA1, [], [], [], bior3.7, sx));
文档评论(0)