求助:Arnold置乱变换的问题
用Arnold置乱变换做图像加密,程序写出来了但是结果却不对,经过周期变换后不能恢复原图,下面是程序,请大家帮我看看那里有问题了~~function embedimage=arnold1(embedimage,N)
=size(embedimage);
a=double(embedimage)/255;
for k=1:N
for i=1:m
for j=1:n
x=i+j;
y=i+2*j;
if x>m
x=mod(x,m);
end;
if y>m
y=mod(y,m);
end;
if x==0
x=m;
end;
if y==0
y=m;
end;
a1(x,y)=a(i,j);
end
end
embedimage1=a1;
end
imshow(embedimage1)
还有就是怎么样才能对彩色的图像进行8*8的DCT变换????? 原帖由 xpmax007 于 2007-4-19 12:12 发表
用Arnold置乱变换做图像加密,程序写出来了但是结果却不对,经过周期变换后不能恢复原图,下面是程序,请大家帮我看看那里有问题了~~
function embedimage=arnold1(embedimage,N)
=size(embedimage);
a=doub ...
1. a1没有预先定义及分配空间
2. embedimage1 在外循环(k那个)中重复使用,最后 imshow 的是 k=N 那个,前面的迭代不起作用
3. 有空、有能力的话,建议去掉里面的两个循环
建议先看看matlab基础书,不要太急 非常感谢eight 问题已经解决 不过新的问题又出来了.........置乱还原后的图像变成灰度图了........5555555不知道怎么回事,是不是还要分成RGB3个通道分别处理最后再合成呢?
[ 本帖最后由 eight 于 2007-4-19 17:10 编辑 ]
页:
[1]