chapter 04 图像信息伪装技术.pdf

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

chapter04图像信息伪装技术

listing4.1幻方的求取

%文件名:magicsquares.m

%程序员:祝素雯

%函数功能:本函数将完成n阶二维幻方的求取,要求n为奇数

%输入格式举例:result=magicsquares(5)

%参数说明:

%n为阶数

%result为求得的二维幻方矩阵

functionresult=magicsquares(n)

ifmod(n,2)==0

error(n要求为奇数);

end

result=zeros(n);

%依据P128算法,先将1放在第1行的中间一列

j=floor(n/2)+1;%中间1列

result(1,j)=1;

%从2到n^2每个的数依次存放在前一个书的上一行、后一列的位置上...

%但下列特别状况除外

i=n+1;%便于以后从第n行起先考虑起

fork=2:n*n

i=i-1;

j=j+1;

%特别状况:假如前一个数存放在第1行第n列的位置上,

%则将当前数字存放在前一个数的下面(即第2行第n列)

ifi1jn

i=i+2;

j=j-1;

else

%特别状况:假如前一个数存放在第1行,则将当前数字存放在第n行

ifi1

i=n;

end

%特别状况:假如前一个数存放在第n列,则将当前数字存放在第1行

ifjn

j=1;

end

end

ifresult(i,j)==0

result(i,j)=k;

else

%特别状况:假如按上述规则确定的位置上已经有数存放了(result(i,j)!=0)

%则干脆将当前数字存放在前一个数的下面(即行数+1,列数不变)

i=i+2;

j=j-1;

result(i,j)=k;

end

end

测试结果

listing4.2幻方置乱主函数

%文件名:magicreplace.m

%程序员:祝素雯

%函数功能:本函数将完成对输入的图像信号按幻方置换策略进行置乱

%输入格式举例:result=magicreplace(secretimage,1,1983)

%参数说明:

%matrix为输入图像矩阵

%key为限制密钥

%cord为1表示置乱变换,为0表示复原变换

%result为置乱后的结果

functionresult=magicreplace(matrix,eord,key)

%要求输入为图像矩阵而非图像文件

%matrix=imread(image);

%%matrix=double(matrix)/255;

%这里以11阶幻方为例,可以利用magicsquares函数

%生成高阶幻方,带入进行置乱操作

margin=11;

%分析原图像尺寸并补遗,使其能被分成若干完整的11*11子块

[m,n]=size(matrix);

rowadd=margin-mod(m,margin);

coladd=margin-mod(n,margin);

ifrowadd==margin

rowadd=0;

end

ifcoladd==margin

coladd=0;

end

input=uint8(zeros([m+rowaddn+coladd]));

input(1:m,1:n)=matrix(1:m,1:n);

%密钥生成随机数

rand(seed,key);

control=randint(1,1,[1margin*margin]);

%生成11阶标准幻方

%magic=magicsquares(margin);

%这里取了一个已生成的11阶幻方为例

magic=[3852666983971001147

文档评论(0)

151****1902 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档