使用matlab对图像进行加密:
gray=imread('灰度图像.jpg');
[M,N] = size(gray);
Rm = randperm(M,M);
Mchange = [1:1:M;Rm];
Rn = randperm(N,N);
Nchange = [1:1:N;Rn];
gray (Mchange(1,:),:) = gray (Mchange(2,:),:);
gray (:,Nchange(1,:)) = gray (:,Nchange(2,:));。。。。。。此时灰度图像不变。
但是使用指令:imwrite(gray,'行列加密后图像.jpg'); 保存之后再观察:
gray=imread('灰度图像.jpg');
subplot(2,2,1);
imshow(gray);
subplot(2,2,3);
imhist(gray) ;
title('原画灰度直方图');
c=imread('行列加密后图像.jpg');
subplot(2,2,2);
imshow(c);
subplot(2,2,4);
imhist(c);
title('加密直方图');
就发生了变化:
这是为什么?