squeakstar
2011-04-07, 11:38
我编写的Arnold变换程序如下:
w0 = imread(’Hare.bmp’);
w1 = w0;
for k = 1:1 %迭代次数为一次
for x = 1:179 %图像大小为179*179
for y = 1:179
x1 = x + y;
y1 = x + 2 * y;
if x1 > 179
x1 = mod(x1,179);
end;
if y1 > 179
y1 = mod(y1,179);
end;
if x1 == 0
x1 = 179;
end;
if y1 == 0
y1 = 179;
end;
w1(x1,y1) = w0(x,y);
end;
end;
w0 = w1;
end;
figure;imshow(w1,[ ]);
当我使用位深度为24的bmp和JPEG图像文件进行如上所示的程序变换时,只发生了图像的表面置乱,也就是可以从置乱的表面一层之下看出图像原本的样子!这能保哪门子密啊!但是当我把图像另存为256色位图(位深度为8),16色位图(位深度为4)以及单色位图(位深度为1)之后,用上面的程序就能将其充分地置乱了(从表面上看不出原图像的样子了)。为什么我的程序不能充分置乱位深度为24的bmp和jpg彩色图像呢?我需要对程序做什么改动才能使之充分置乱位深度为24的彩色图像呢?我茫然毫无头绪,请求高人们指点!
w0 = imread(’Hare.bmp’);
w1 = w0;
for k = 1:1 %迭代次数为一次
for x = 1:179 %图像大小为179*179
for y = 1:179
x1 = x + y;
y1 = x + 2 * y;
if x1 > 179
x1 = mod(x1,179);
end;
if y1 > 179
y1 = mod(y1,179);
end;
if x1 == 0
x1 = 179;
end;
if y1 == 0
y1 = 179;
end;
w1(x1,y1) = w0(x,y);
end;
end;
w0 = w1;
end;
figure;imshow(w1,[ ]);
当我使用位深度为24的bmp和JPEG图像文件进行如上所示的程序变换时,只发生了图像的表面置乱,也就是可以从置乱的表面一层之下看出图像原本的样子!这能保哪门子密啊!但是当我把图像另存为256色位图(位深度为8),16色位图(位深度为4)以及单色位图(位深度为1)之后,用上面的程序就能将其充分地置乱了(从表面上看不出原图像的样子了)。为什么我的程序不能充分置乱位深度为24的bmp和jpg彩色图像呢?我需要对程序做什么改动才能使之充分置乱位深度为24的彩色图像呢?我茫然毫无头绪,请求高人们指点!