1.一种基于Hankel矩阵扫描的图像置乱方法,其特征在于:包括图像正置乱与逆置乱两个过程;
设定原始图像IMAGE,大小为M×N像素;迭代次数为cycle,置乱密钥为cycle,置乱后的图像为FIG;
所述的图像正置乱过程如下:
定义迭代次数cycle=k;
定义一个一维数组fig,用于存放扫描后的待置乱图像IMAGE数组中的元素,大小与原始图像IMAGE大小相同;
找到待置乱图像IMAGE中行号和列号较大的,并将这个较大的值赋值给r,生成2×r大小的非负序列A,然后再生成序列A的Hankel矩阵,在此Hankel矩阵的基础上截取待置乱图像M×N大小的Hankel矩阵,存储至数组h;并得到h中最大的数,记为hmax,Hankel矩阵中的元素从1递增至hmax;
一次迭代开始:按Hankel矩阵值递增的方式扫描Hankel矩阵直到最后一个元素;扫描Hankel矩阵的同时按照这个扫描方式扫描待置乱图像IMAGE,并将其存储至fig中;将一维结构的数组fig转换成IMAGE大小的二维结构,存储至Fig中,再将Fig赋给IMAGE,一次迭代结束;
如果cycle不等于k,转到步骤4)进行下一次的迭代;直到cycle为k,则迭代结束,此时得到的Fig输出为FIG,FIG即为置乱后的图像;;正置乱过程结束;
所述图像的逆置乱过程如下:
定义迭代次数cycle=k;
定义一个二维数组Out,用于存储恢复的图像,大小与置乱图像相同;
与正置乱过程一样:找到待置乱图像行号和列号中较大的,并将这个较大的值赋值给r,生成2×r大小的非负序列A,然后再生成序列A的Hankel矩阵,在此Hankel矩阵的基础上截取待置乱图像大小的Hankel矩阵,存储至数组h;并得到h中最大的数,记为hmax,Hankel矩阵中的元素从1递增至hmax;
一次迭代开始:先将置乱图像转换为一维结构的数组out;按Hankel矩阵值递增的方式扫描Hankel矩阵直到矩阵最后一个元素;扫描Hankel矩阵的同时将out中的元素依次放入扫描Hankel矩阵的位置中,即二维数组Out中对应的扫描位置,将Out赋值给FIG,一次迭代结束;
如果cycle不等于k,转到步骤4)继续迭代;直到cycle为k,则迭代结束, 此时得到的Out输出为OUT,OUT即为置乱恢复图像;逆置乱过程结束。