燕山大学
课程设计说明书题目:图像置乱与复原
学院(系):电气工程学院
年级专业:自动化仪表一班
学号:
学生姓名:
指导教师:
教师职称:
燕山大学课程设计(论文)任务书
院(系):电气工程学院基层教学单位:自动化仪表系
说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。
年月日
摘要
所谓“置乱”,就是将图像的信息次序打乱,将a像素移动到b像素的位置上,b像素移动到c像素的位置上……使其变换成杂乱无章难以辨认的图像。
图像置乱的方法多种多样,本文着重介绍了基于Arnold变换图像置。几何变换法直观、分散度较好且易于实现。做法是,对像素个数为N×N的图像F,首先进行某种可能改变图像结构的变换,如放缩或错切变换,接着将落在图像区域外的像素重新移回图像内,如进行取模运算,得到图像。以取模形式的非线性变换为例,用公式表为:P=(A×P)modN,其中:P=(x,Y)T,P’=(X’,Y’)T分别为原图和变换后图像的像素位置;变换矩阵A=(a,b;c,d)满足关系:{ad=bc±1|a,b,c,d∈Z,Z为整数集合};mod为取模运算。由上式可以得到许多满足要求的变换,例如A=(1,1;1,2)就是著名的Arnold变换。
关键字:置乱复原Arnold变换
第一章
引言 (1)
第二章
基于Arnold变换图像置 (2)
2.1 定义 (3)
2.2 图像置换程序………………………………
2.2.1位置空间的图像置乱…………………………
2.2.2 灰度空间的图像置乱…………………………
2.3 图像复原程序编写………………………………
第三章
心得体会………………………………………………
图像置乱变换是一种重要的图像加密方法,它的主要目的是将给定的图像进行搅乱,从而是人们无法通过人类视觉系统和计算机系统来发现原始图像所表达的真正含义。目前空域图像置乱方法有两类,一类是基于位置变换的图像置乱方法,另一类是基于像素灰度变换的图像置乱方法,前者可进一步划分为基于二维仿射变换的置乱方法和基于像素位置迁移的置乱方法;后者可进一步划分为基于单一像素灰度的置乱方法和基于多像素灰度的置乱方法。
第二章基于Arnold变换图像置
几何变换法直观、分散度较好且易于实现。做法是,对像素个数为N×N的图像F,首先进行某种可能改变图像结构的变换,如放缩或错切变换,接着将落在图像区域外的像素重新移回图像内,如进行取模运算,得到图像。以取模形式的非线性变换为例,用公式表为:P=(A×P)modN,其中:P=(x,Y)T,P’=(X’,Y’)T分别为原图和变换后图像的像素位置;变换矩阵A=(a,b;c,d)满足关系:{ad=bc±1|a,b,c,d∈Z,Z为整数集合};mod为取模运算。由上式可以得到许多满足要求的变换,例如A=(1,1;1,2)就是著名的Arnold变换。
2.1定义
这里所说的二维Arnold变换,也就是人们通常称的Arnold变换,它是V.I.Arnold在研究环面上自同态时所提出的.设M是光滑流形环面{(x,y)mod1},M上的一个自同态
φ(x,y)=(x+y,x+2y)(mod1).
显然映射φ导出覆盖平面(x,y)上的一个线性映射φ=(1,1;1,2)
定义1设有单位正方形上的点(x,y),将点(x,y)变到另一点(x′,y′)的变换为
(x′,y′)=(1,1;1,2)(x,y)(mod1),
此变换称作二维Arnold变换,简称Arnold变换.
将Arnold变换应用在数字图像上,可以通过像素坐标的改变而改变图像灰度值的布局,把数字图像看作一个矩阵,则经Arnold变换后的图像会变得“混乱不堪”,但继续使用Arnold 变换,一定会出现一幅与原图相同的图像,从而达到图像传输过程中隐蔽的效果.现在来讨论Arnold变换的周期性问题,即变换多少次,又回复到最初的图像.考虑到数字图像的需要,把以上的Arnold变换改写为
(x′,y′)=(1,1;1,2)(x,y)(modN) (1)
式中,x,y∈{0,1,2,…,N-1},而N是数字图像矩阵的阶数.
定义2设数字图像矩阵P=(pij)的阶数为N,这里把pij等同于它所处的位置(i,j)′=(ij),i,j∈{0,1,2,…,N-1},则P有N2个元素.对给定的正整数N。Arnold变换(1)的周期为m N,m N是使得图像P经一系列变换后回复到P的最小自然数。
事实上,数字矩阵P=(pij)里的每个元素pij在Arnold变换式(1)的作用下,当且仅当属于某个
链(也称轨道).此处链的长度是指它所含元素pij的个数.对于给定的自然数N,Arnold变换的周期实际上就是数字矩阵P中N2个元素所在的所有链的长度的最小公倍数.对于给定的自然数N,Arnold变换式(1)的周期mN是使得下式成立的最小自然数n:
(1,1;1,2)n(modN)=(1,0;0,1)
关于Arnold变换的周期估值定理:对于给定的正整数N,当N>2时,m N≤N2/2.对于给定的自然数N>2,式(1)的周期为m N,即为数字矩阵P中元素所属链的长度,即m N是使得下式成立的最小自然数n:
(1,1;1, 2)(1,1)(modN)=(1,1)
2.2图像置换
2.2.1 位置空间的图像置乱
应用如下置乱变换
(x’,y’)=(1,1;1,2)(x,x)(modN)
其中:x,y,x’,y’∈{0,1,…,N-1},(x,y)为原始图像像素位置;(x’,y’)为置乱后图像像素位置;N为数字图像矩阵的阶数。
程序编写:
i=imread('D:\360data\??òaêy?Y\?òμ?í???\±3?°\3b26f767daf40525bcf
b3b0dc6_560.jpg');
i=rgb2gray(i);
[M,N]=size(i)
w0=double(i)/255;
w1=w0;
figure,imshow(w1);
for k=1:1
for x=1:M
for y=1:N
x1=x+y;
y1=x+2*y;
if x1>M
x1=mod(x1,M);
end; 原图
if y1>N
y1=mod(y1,N);
end;
if x1==0
x1=M;
end;
if y1==0
y1=N;
end;
w1(x1,y1)=w0(x,y);
end;
end;
w0=w1
end;
figure,imshow(w1); 置换一次的结果图
置换十次的结果图
2.2.2 灰度空间的图像置乱
任意灰度值h的十六进制表示形式为h=(h1,h2)H,,其中hi=1,2,…,F;i=l,2。
则,每一个像素值h的灰度置乱可表示为:
(h’1,h’2)=(1,1;1,2)(h1,h2)(mod16)
其中:hi,h’i∈{0,1,…,F};i=1,2。
那么,h’=(h’1,h’2)H即为h置乱后对应的像素值。
程序编写
a=imread('D:\360data\??òaêy?Y\?òμ?í???\±3?°\3b26f767daf40525bcf b3b0dc6_560.jpg');
a=rgb2gray(a);
[M,N]=size(a);
ax=double(a);
for num=1:13
bx=zeros(M,N);
for i=1:M
for j=1:N
y=mod(ax(i,j),16);
x=mod(ax(i,j)*y,16);
xk=x+y;
yk=x+2*y;
xk=mod(xk,16);
yk=mod(yk,16);
ax(i,j)=xk*16+yk;
end
end 灰度空间置换13的结果图
end
imshow(ax);
b=uint8(ax);
imshow(b);
2.3图像复原程序编写
随着迭代次数的增加,图像逐渐趋于混乱,不过到一定次数时,又将回到原图。如大小为128×128的图像迭代96次后将回到原图,大小为240×240的图像迭代60次后将回到原图,大小为256×256的图像迭代192次后将回到原图,一般地,可以用下面的Matlab程序测试任意大小的图像迭代多少次后回到原图
x=1;y=1;n=548;k=1;
t=x;x=x+y;y=t+2*y;
while x~=1&&y~=1
k=k+1;
if x>n
x=mod(x,n);
end
if y>n
y=mod(y,n);
end
t=x;x=x+y;y=t+2*y;
end
k
程序经运行得出结果k=138所以要把图像复原只需把图像再置乱138减置乱次数例如138-10=128就能把图像复原。
心得体会
通过一个星期的图像课程设计,使我更加了解图像的基本知识以及图像变换的原理。为以后的长远发展打下了坚实的基础。通过设计图像的置乱与复原我学到了图像加密,还学会了仿真软件matlab丰富了知识,同时,我们进行了程序的编写与运行,提高了自己的动手能力,促进了自己的研究兴趣。同时,这一个星期里我们一个班呆在一个教室里,还有老师的陪伴,自己有了疑问不仅可以找老师也可以找大家问或一起商量,这样不仅促进了知识的学习而且促进了同学之间的友谊。这两个星期里我收获了很多很多。
参考资料
1.数字图像处理学电子工业出版社贾永红2003
2.数字图像处理(Matlab版)电子工业出版社冈萨雷斯2006
3.齐东旭矩阵变换及其在图像信息隐藏中的应用研究北方工业大学学报1999.
4.丁玮,囝伟齐,齐东旭基于置乱与融合的数字图像隐藏技术及应用中国图像图形学报2000.
5.丁玮,固伟齐,齐东旭基于Arnold变换的数字图像置乱技术计算机辅助设计与图形学学报2001。
燕山大学课程设计评审意见表
燕山大学课程设计说明书