1.一种基于Kirkman女生问题解决方案的图像置乱方法,其特征在于:设原始图像为image1;迭代次数为cycle;
Kirkman女生问题解决方案中涉及的四个密钥为i、a、b和u,其中u取1到7中的一个数,代表采用Kirkman女生问题解决方案中七个通式中的一个通式,i取1到15中的一个数,a和b取1到15中的一个数,而且i和a、b的取法有规则:i=1时,a=14,b=15;i=2时,a=15,b=1;i=3时,a=1,b=2;……;i递增的同时,a和b依次往后移动;当确定一组i、a、b、u的取值,即产生一组解决方案;
输入的原始图像为image1,大小为M×N像素;输出的置乱图像为fig7;
图像的正置乱过程如下:
1)得到输入的原始图像image1大小为M×N,迭代次数为cycle,确定Kirkman女生问题解决方案中四个密钥的一组取值得到一组解决方案A;
2)将原始图像image1的每一个像素值用八位的二进制序列image2表示,并进行转置为image4,得到image4,大小为m×n,再将其转成一维序列image3;
3)将解决方案A存储到index1中,并进行取余处理:index1中值大于15的用15去除,并取其余数, 其余不变,得到的结果保存至index2中;
4)定义迭代变量为F,所述的F取值范围为1~cycle,即从1次迭代开始,到cycle次迭代结束:对一维二进制序列image3进行分组,每组15个;然后按照解决方案A对每组进行重新排序,排序后的结果存储至fig1中;若最后一组序列不足15个,则将其原封不动的放在前边排好序的fig1后边的位置;最后对排序后的序列fig1进行左移F位处理,并将结果赋给image3;
5)若迭代变量F不等于cycle,转至正置乱过程的步骤4)进行下一次迭代;直到迭代变量F为cycle,则迭代结束;
6)将排序后的一维二进制序列fig1转换成二维大小m×n;然后对其转置存储至fig2,将二进制矩阵fig2转换成十进制得到一维数组存储至fig3,再将fig3转换成原始二维图像大小M×N,并将其存储至fig7,从而得到置乱后的图像fig7;至此,正置乱过程结束;
图像的逆置乱过程如下:其中,置乱后图像为fig7,大小为M×N像素;迭代次数为cycle;Kirkman女生问题解决方案中的四个密钥i、a、b和u;
输出的置乱恢复图像为out3;
1)得到输入的置乱图像fig7大小为M×N,以及与正置乱过程相同的迭代次数cycle,确定与正置乱过程相同的解决方案A;
2)将置乱图像fig7转换成八位的二进制序列fig1,并进行转置为fig4,得到fig4,大小为m×n,再将其转成一维序列fig5;
3)做与正置乱过程3)相同的处理,结果保存至index2中;
4)定义迭代变量F,所述的F取值范围为1~cycle,即从1次迭代开始,到cycle次迭代结束:对一维二进制序列fig5进行右移cycle+1-F位处理,结果存储至fig1;将移位后的序列fig1进行分组,每组15个;然后按照解决方案A对每组进行与正置乱相反的排序,排序后的结果存储至out1中,若最后一组序列不足15个,则将其原封不动的放在前边排好序的out1后边的位置;最后并将结果赋给fig5;
5)若迭代变量F不等于cycle,转至逆置乱过程的步骤4)进行下一次迭代;直到迭代变量F为cycle,则迭代结束;
6)将排序后的一维二进制序列out1转换成二维大小m×n;然后对其转置存储至out2,将二进制矩阵out2转换成十进制得到一维数组存储至fig6,再将fig6转换成原始二维图像大小M×N,并将其存储至out3,从而得到置乱后的图像out3;至此,逆置乱过程结束。