前文我们介绍了基于Arnold置乱的数字图像加密算法的两种图像置乱变换,今天我们介绍的是另外三种图像置乱变换:基于骑士巡游的图像置乱变换、基于Arnold变换的数字图像置乱和基于仿射变换的置乱变换。
一、基于骑士巡游的图像置乱变换
所谓骑士巡游,就如同象棋一样,给出一块具有n²个格子的n×n棋盘,一位骑士(knight)按国际象棋规则移动,放在初始坐标为(x0,y0)的格子里,骑士巡游问题(Knight-tour Problem)就是要求寻找一种方案使之过每个格子一次,且仅一次。该问题可以较自然地推广到n×m棋盘。一个9×9棋盘的骑士巡游路线如下面的矩阵T所示,称其为巡游矩阵,其中1表示骑士巡游的起点,t(i, j)的值表示其实第t(i, j)步巡游到i行j列。
骑士巡游变换:对于图像A={a(i, j)}nxm,用巡游矩阵T={t(i, j)}nxm作置乱变换,得到图像B。其变换方法如下:将A与T按行列作一一对应,将A中与T中位置1对应(下简称对应位置)的像素灰度值(或R、G、B分量值)移到对应位置2,将对应位置2的像素灰度值移到对应位置3,......以此类推,最后将对应nxm位置的像素灰度值移动对应位置1,就得到了按T置乱后的图像B。这种按骑士巡游路径进行置乱的变换,简称为骑士巡游变换。
按骑士巡游变换对图像作置乱,不仅可以隐藏图像细节,而且可以使用图像总的形象保持不变,用骑士巡游变换来作图像的隐藏,