matlab怎么畫函數圖像,arnold函數 matlab_接再厲,發個Arnold置亂變換的matlab代碼

 2023-10-18 阅读 29 评论 0

摘要:再接再厲,發個Arnold置亂變換的matlab代碼2008-05-05 21:30以下是代碼,自已看吧。。希望對于初學者有所幫助function Arnold(Image,Frequency,crypt)%圖像數值矩陣Arnold轉換函數matlab怎么畫函數圖像?%輸入參數% Image: 待加密(待解密)圖像文件名(注意寫格式后

再接再厲,發個Arnold置亂變換的matlab代碼2008-05-05 21:30以下是代碼,自已看吧。。希望對于初學者有所幫助

function Arnold(Image,Frequency,crypt)

%圖像數值矩陣Arnold轉換函數

matlab怎么畫函數圖像?%輸入參數

% Image: 待加密(待解密)圖像文件名(注意寫格式后綴),只能為二維

% Frequency: 圖像需要變換迭的次數

% crypt 0~加密;1~解密

matlab函數大全?%輸出參數

% M: 轉換后圖像數據矩陣

% 輸出由M對應的圖像文件

if nargin&lt3

matlab的norm函數,disp('請按程序的輸入參數格式輸入參數!!!');

return;

end

if crypt~=0 & crypt~=1

norminv函數matlab,disp('encrypt 必須為0或1!');

end

%將Q賦值給M,計算Q的大小

Q=imread(Image);

matlab partialcorr,M = Q ;

Size_Q = size(Q);

%如果不是二維或三維數組,則不處理,返回

if (length(Size_Q) &lt= 2)

matlab中rectangle函數、if Size_Q(1) ~= Size_Q(2)

disp('不是方陣,不能Arnold轉換');

return

end

matlab中normrnd函數,else

disp('不是二維數組,不進行Arnold變換');

return

end

matlab中disp函數用法。%------------------------------------------

%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(n,2) == 0

for i = 1:K

for j = 1:K

c = M2_t(i,j);

M1_t(mod(i+j-2,K)+1,mod(i+2*j-3,K)+1) = c;

end

end

else

for i = 1:K

for j = 1:K

c = M1_t(i,j);

M2_t(mod(i+j-2,K)+1,mod(i+2*j-3,K)+1) = c;

end

end

end

end

if mod(Frequency,2) == 0

M = M1_t;

else

M = M2_t;

end

%------------------------------------------

%imwrite( double(M)/255,strcat( 'Arnold_',num2str(Frequency),'_',Image ),'bmp' );

imshow(M);

function Period=ArnoldPeriod(N)

% 求周期

if ( N&lt2 )

Period=0;

return;

end

n=1;

x=1;

y=1;

while n~=0

xn=x+y;

yn=x+2*y;

if ( mod(xn,N)==1 && mod(yn,N)==1 )

Period=n;

return;

end

x=mod(xn,N);

y=mod(yn,N);

n=n+1;

end

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/153301.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息