![]() |
[求助]我做的一个Arnold置乱程序有以下错误,请哪位指教一下!谢谢!
%Arnold变换改进
function Y=ArnoldTranslation(M,X) clc; clear all; %Arnold变换改进 clock X='E:\论文\我的论文集\test\lennagray.bmp'; % ste_cover=imread(X); % ste_cover=double(ste_cover); % [M,N]=size(X); M=256; for i=1:M m(:,i)=(i-1)*ones(M,1); end %构造每列相同,按列递增的矩阵 m1=cat(3,m',m);%转置后,每行相同,按行递增 n=imread(X); m1(:,:,3)=n; m1=double(m1); for j=1:M for i=1:M m2(:,i,j)=[1 1;1 2]*[m1(i,j,1);m1(i,j,2)]; %Arnold变换定义:[x';y']=N*[x;y] (还未取模) end end %m2维数:2*M*M m3=mod(m2,M);%取模 %变维 for j=1:2 for i=1:M m4(:,i,j)=m3(j,:,i); end end %m3维数:M*M*2 M4(:,:,3)=m1(:,:,3); %与图层关联 %第一层坐标调整(列移动),第二,三随之变换 m5=zeros(M,M,3); for j=1:M m5(j:M,j,:)=m4(1:M+1-j,j,:); m5(1:j-1,j,:)=m4(M+2-j:M,j,:); end %第二层坐标调整,第三层随之变化 m6=zeros(M,M,3); for j=1:M m6(j,j:M,2:3)=m5(j,1:M+1-j,2:3); m6(j,1:j-1,2:3)=m5(j,M+2-j:M,2:3); end %保存,显示 m7=uint8(m6(:,:,3)); imwrite(m7,'E:\论文\我的论文集\test\arnold1.bmp'); subplot(2,1,1); imshow(n,[]); title('原始图像'); subplot(2,1,2); imshow(m7,[]); title('Arnold变换'); clock ans = 1.0e+003 * 2.0020 0.0090 0.0130 0.0080 0.0370 0.0054 ??? Subscripted assignment dimension mismatch. Error in ==> C:\MATLAB6p5\work\ArnoldTranslation.m On line 38 ==> m5(j:M,j,:)=m4(1:M+1-j,j,:); >> |
回复: [求助]我做的一个Arnold置乱程序有以下错误,请哪位指教一下!谢谢!
呵呵,你好,不知道你的这个变换程序现在还有问题么?因为我再做毕设,要用到这段程序,所以想再这里摘录你的,我对matlab一窍不通:(,所以想问问你这个程序能通过么?
|
回复: [求助]我做的一个Arnold置乱程序有以下错误,请哪位指教一下!谢谢!
我的论文也是这方面的啊 呵呵 我也不会 汗:(
|
回复: [求助]我做的一个Arnold置乱程序有以下错误,请哪位指教一下!谢谢!
单步运动到第38行或断点运行到38行,看看运行前等式两端的维数是否匹配
|
所有时间均为北京时间。现在的时间是 11:28。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.