图像加密的重要性可想而知,每个人都会有自己的小秘密,通过图像加密的方法可以保护自己的照片等的安全。
一般情况下,图像加密可以分为以下几个步骤:
1.选择图像加密算法
2.根据算法获取秘钥
3.根据保存的秘钥解密
图像加密的处理方式多为对图像中的像素点进行处理,有的处理方式不改变灰度直方图的信息(易破解),然后更高级的处理方式使得原来的灰度直方图信息也发生改变(比如变得均衡化了)。
下面介绍自己亲自测试的2种图像加密算法:
1.行列像素点置乱方法,该方法将原图中的像素信息进行了重新排布——置乱。通过一一对应的关系可以恢复原来的图像,此时的秘钥即为行列变换的映射向量Mchange和Nchange。
简单的MATLAB程序如下:
clc,clear all,close all
Lena = imread('Lena512.bmp');
figure;imshow(Lena)
title('原图')
[M,N] = size(Lena);
Rm = randsample(M,M)';
Mchange = [1:1:M;Rm];
Rn = randsample(N,N)';
Nchange = [1:1:N;Rn];
%打乱行顺序
Lena (Mchange(1,:),:) = Lena (Mchange(2,:),:);
figure;imshow(Lena)
title('行加密后图像')
%打乱列顺序
Lena (:,Nchange(1,:)) = Lena (:,Nchange(2,:)