资源简介

可对数字水印进行预处理,使得图像置乱,提高系统安全性

资源截图

代码片段和文件信息

function [M] = Arnold(ImageFrequencycrypt)
%图像数值矩阵Arnold转换函数
%输入参数
%   Image:    待加密(待解密)图像文件名(注意写格式后缀),只能为二维
%   Frequency:   图像需要变换迭的次数
%       crypt           0~加密;1~解密

%输出参数
%   M:     转换后图像数据矩阵
%            输出由M对应的图像文件
if nargin<3
    disp(‘请按程序的输入参数格式输入参数!!!‘);
    return;
end

if crypt~=0 & crypt~=1
    disp(‘encrypt 必须为0或1!‘);
end

%将Q赋值给M,计算Q的大小
Q=imread(Image);
%Q = Image;
M = Q ;
Size_Q   = size(Q);

%如果不是二维或三维数组,则不处理,返回
if (length(Size_Q) <= 2) 
   if Size_Q(1) ~= Size_Q(2) 
      disp(‘不是方阵,不能Arnold转换‘);
      return
   end
else
   disp(‘不是二维数组,不进行Arnold变换‘);
   return 
end

    %------------------------------------------
   %Arnold转换
   n = 0;
   K = Size_Q(1);
   
   M1_t = Q;
   M2_t = Q;
   
   if crypt==1   %解密
       Frequency=ArnoldPeriod( Size_Q(1) )-Frequency;
   end
       
   for s = 1:Frequency
       n = n + 1;
       if mod(n2) == 0
 

评论

共有 条评论