矩阵在图像处理中的若干应用_第1页
矩阵在图像处理中的若干应用_第2页
矩阵在图像处理中的若干应用_第3页
矩阵在图像处理中的若干应用_第4页
矩阵在图像处理中的若干应用_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

矩阵在图像处理中的若干应用1绪论目前,随着科学技术的高速发展,现实生活中有大量的信息用数字进行存储、处理和传送。而传输带宽、速度和存储器容量等往往有限制,因此数据压缩就显得十分必要。数据压缩技术已经是多媒体发展的关键和核心技术。图像文件的容量一般都比较大,所以它的存储、处理和传送会受到较大限制,图像压缩就显得极其重要。当前对图像压缩的算法有很多,特点各异,类似JPEG 等许多标准都已经得到了广泛的应用。奇异值分解(Singular Value Decomposition ,SVD) 是一种基于特征向量的矩阵变换方法,在信号处理、模式识别、数字水印技术等方面都得到了应用。由于图像具有矩阵结构,有文献提出将奇异值分解应用于图像压缩,并取得了成功,被视为一种有效的图像压缩方法。本文在奇异值分解的基础上进行图像压缩。2矩阵的奇异值分解原理2.1矩阵的奇异值设,是的特征值,是的特征值,它们都是实数。且设则特征值与之间的关系为:,。设, 的正特征值,的正特征值,称,是的正奇异值,简称奇异值。若是正规矩阵,则的奇异值是的非零特征向量的模长。2.2矩阵的奇异值分解(SVD)若,是的个正奇异值,则存在阶酉矩阵和阶酉矩阵,满足: (1)其中,为奇异对角阵。满足是对角阵,满足是对角阵1。的第列为的对应于奇异值对应的左奇异向量,的第列为的对应于奇异值对应的右奇异向量。它们的每一列均为单位向量,且各列之间相互正交。若,是的个正奇异值,则总有次酉矩阵,满足:,其中。奇异值分解是一种基于特征向量的矩阵变换方法。奇异值分解是现代数值的最基本和最重要的工具之一。3矩阵的奇异值分解在图像压缩中的应用3.1奇异值分解压缩原理分析用奇异值分解来压缩图像的基本思想是对图像矩阵进行奇异值分解,选取部分的奇异值和对应的左、右奇异向量来重构图像矩阵。根据奇异值分解的图像性质1和4可以知道,奇异值分解可以代表图像的能量信息,并且可以降低图像的维数2。如果表示个维向量,可以通过奇异值分解将表示为个维向量。若的秩远远小于和,则通过奇异值分解可以大大降低的维数。对于一个像素的图像矩阵,设,其中,。按奇异值从大到小取个奇异值和这些奇异值对应的左奇异向量及右奇异向量重构原图像矩阵。如果选择的,这是无损的压缩;基于奇异值分解的图像压缩讨论的是,即有损压缩的情况。这时,可以只用个数值代替原来的个图像数据。这个数据分别是矩阵的前个奇异值, 左奇异向量矩阵的前列和 右奇异向量矩阵的前列元素。比率: (2)称为图像的压缩比。显然,被选择的奇异值的个数应该满足条件,即。故在传送图像的过程中,不需要传个数据,而只需要传个有关奇异值和奇异向量的数据即可。接收端,在接收到奇异值以及左奇异向量和右奇异向量后,可以通过: (3)重构出原图像矩阵。与的误差为: (4)某个奇异值对图像的贡献可以定义为,对一幅图像来说,较大的奇异值对图像信息的贡献量较大,较小的奇异值对图像的贡献较小。假如接近1,该图像的主要信息就包含在之中。通常图像的奇异值都具“大L 曲线”,只有不多的一些比较大的奇异值,其它的奇异值相对较小,因此一般只需要比较小的k 就使接近1。在满足视觉要求的基础上,按奇异值的大小选择合适的奇异值个数,就可以通过将图像恢复。越小,用于表示的数据量就小,压缩比就越大,而越接近,则与就越相似。在一些应用场合中,如果是规定了压缩比,则可以由式求出,这时也同样可以求出。3.2奇异值分解压缩应用过程在对图像进行操作时,因为矩阵的维数一般较大,直接进行奇异值分解运算量大,可以将图像分解为子块,对各子块进行奇异值分解并确定奇异值个数,将每个子块进行重构。这样操作除了因为对较小型的矩阵进行奇异值分解的计算量比较小外,另一方面是为了利用原始图像的非均匀的复杂性。如果图像的某一部分比较简单,那么只需要少量的奇异值,就可以达到满意的近似效果。为了保证图像的质量就需要较多的奇异值。但是各个子块的奇异值数目, 大小各不相同, 因此可以考虑为每个子块自适应的选择适当的奇异值数目。一种简单的方法是定义奇异值贡献量的和来选择,其中是一个接近1的数。对常见的256 256 .bmp格式的图像(位图),划分为44个子块,每个子块大小为6464。对每个子块根据来选择所需要的奇异值数目3。增大的值来选择奇异值数目,可以推理得随着不断增大,视觉效果越来越好。随着不断增大,需要的奇异值也增多,压缩比会减小。4矩阵奇异值分解在图像隐藏中的应用4.1数字图像置乱的数学性质置乱原理:将原来点处的像素对应的灰度值或RGB颜色值移动到变换后的点处,数字图像的置乱有基于位置空间、色彩空间和频率空间的置乱变换。置乱具有周期性,如果对一个数字图像反复地使用置乱变换,当经过一定周期的迭代后,会出现复现原图像。我们构造自同构变换如下: (5)则置乱次数及k可作为隐藏系统的密码,从而提高了系统的安全性和保密性。4.2数字图像的奇异值分解一幅静态图像,实质上就是一个彩色或灰度像素矩阵,在线性代数中,矩阵的特征值是矩阵特征的体现,而矩阵的奇异值在体现矩阵特征方面,要优于特征值,图像矩阵的奇异值反映了图像的“能量特性”,对应奇异向量则反映了图像的“几何特性”,它对图像的灰度变化具有不敏感性,图像奇异值的细微变化不会引起图像视觉质量的下降,如果对图像矩阵做转置运算,其奇异值不发生变化。矩阵奇异值具有很好的稳定性,当矩阵A有微小振动时,其奇异值的改变不会大于振动矩阵的2范数。若矩阵奇异值经过归一化处理,则可实现奇异值的比例不变性。另外,矩阵奇异值还具有旋转不变性,因此,奇异值能有效地反映矩阵的特征,在图像处理中能表现图像的代数特性。矩阵分解在一定程度上可以用来进行图像压缩.对于图像分解得到的奇异值矩阵,将其较小的一些对角元清为0,再进行反变换即可完成图像的有损压缩.方法的基本原理是将水印嵌入到图像矩阵的奇异值中。在水印的嵌人过程中对图像矩阵的奇异值分解,得到两个正交矩阵、及一个对角阵。水印 被叠加到矩阵上,对新产生的矩阵进行奇异值分解,得到、和,其中常数调节水印的叠加强度。然后将矩阵、和 相乘,得到处理后的包含水印的图像 。即如果矩阵和 分别表示原始图像矩阵和水印,那么通过以下的四个步骤得到水印图 :(1)将图像矩阵进行奇异值分解 (2)读取水印图像,将其迭加到对角阵上得到新矩阵 (3)将新矩阵进行奇异值分解 (4)得到含水印的图像 4.3数据隐藏算法数字水印技术实际上就是一种数据隐藏技术,它是把一些附加信息(水印信息)直接嵌入原始数字信息的内容中,我们将上述技术应用于数字水印中,采用了置乱与奇异值分解结合的方法进行数据隐藏于提取,收到了较好的效果。 从水印的提取方法来看,可分为提取时需要原图像和不需要原图像两种,后者被称为盲水印,我们实现的是盲水印处理,处理过程如图1所示:原始图像置乱加密水印信息嵌入置乱逆运算置乱加密水印信息提取水印验证水印图像嵌入水印图像嵌入水印的图像图1 盲水印基本处理过程本文算法的具体描述如下:(a)水印图像的嵌入设M为载体图像,W为水印图像(1) 利用Arnold变换对载体图像M进行置乱变换,得到(2) 对分为互不相关的大小为的若干块(3) 对每一小块进行奇异值分解,得到降序排列的奇异值R为图像矩阵的秩,U、V为对应的左右奇异矩阵,对S矩阵来说,显然是,.(4) 求相邻块BLOCK1,BLOCK2的S值的相似系数(5) 若两块相似,求其S(1,1)最小值,将两相似块S(1,1)置为同样值。(6) 修改S值,进行微量调整以嵌入水印信息。(7) 计算嵌入水印后的该两图像块的新S值。(8) 得到新的图像块,填回图像矩阵中。(9) 重复上述(2)(8)步,直至该图像所有信息全部嵌入数字图像中。(10) 对做复原逆变换,得到为正常显示图像。(b)水印的提取过程水印提取采用了最常用的提取方法,就是运用加入水印逆运算。(1) 对M(加入水印的图像)做置换,得到(2) (2)对含有水印的图像矩阵进行分块,对分块进行奇异值分解 为分解后的按降序排列的奇异值向量,U、V为正交的奇异矩阵。(3) 计算相邻矩阵的相似系数。(4) 若两块相似,则按相应规则提取水印。(5) 重复(2)(4)步,直至取出所有的水印W。(c) 图像实验结果将水印放入图像中,得到的结果如图1所示,此时的仿真时间为0.546s,信噪比为36.84。图1 基于置乱变换与奇异值分解的数字水印图像处理将水印从图像中提取出来如图2所示。此时的仿真时间为0.2652s,相似度比为0.9897。可以看出提取出来的水印与原来的水印是一致的,效果非常好。图2 将水印提取出来和原来水印之间的比较由于奇异值具有相对稳定的特点,水印被叠加在图像的SVD域上,使算法具有较好的稳定性和安全性,嵌入水印的图像保持了较好的品质,算法采用了相邻块存放的策略,使得提取水印无需使用原图像,仿真实验说明了算法是可行的,特别是与置乱技术的结合,更是提高了图像信息在传送处理过程中的安全性,对于静止图像来说,奇异值分解方法与置乱技术结合时一种有效的数据隐藏技术。5总结本文介绍了两种矩阵在图像处理中的常见应用。用奇异值分解进行图像压缩,图像隐藏。利用文中所述方法,可以获得成功。尽管如此,仍有些需要改进之处。如:在图像压缩应用中:对子块的划分可以采取更加有效的方法来完成。例如对规模很大的矩阵,随机抽取矩阵的某些行列得到规模较小的矩阵,计算小矩阵的奇异值,重复若干次,用这些小矩阵的奇异值逼近原始矩阵的奇异。另外若已知图像矩阵的奇异值及其特征空间,一般认为较大的奇异值及其对应的奇异向量表示图像信号,而噪声反映在较小的奇异值及其对应的奇异向量上。依据一定的准则选择门限,低于该门限的奇异值置零(截断) ,然后通过这些奇异值和其对应的奇异向量重构图像进行去噪。而在图像隐藏应用中:只用奇异值分解也可以对数字进行隐藏,只是深度不如与置乱技术结合隐藏的深,文中用这些性质才使得将要隐藏的信息(水印)嵌入载体后,对于观察者的视觉或听觉知道奇异值的稳定性与旋转不变性,稳定性中是利用矩阵的谱半径,即2-范数,使观察者察觉不出载体数据的变换,最理想的情况是水印与原始载体在视觉上是一模一样的。6参考文献1李新, 何传江. 矩阵论及其应用M. 重庆大学出版社, 2008. 2 王树梅, 赵卫东, 王志成. 基于 SVD 的图像数字水印技术研究J. 计算机工程与设计, 2008(6), 11(29): 2834-2839. 3 王磊. 基于SVD 的图像数字水印技术研究D. 安徽:合肥工业大学, 2009.7附录程序说明1将水印放入图像的matlab程序代码clear all;clc;start_time=cputime;file_name=lena.bmp;cover_object=imread(file_name);cover_object =cover_object(:,:,1);cover_object=double(cover_object);Mc=size(cover_object,1);Nc=size(cover_object,2);file_name=wp.bmp;message=double(imread(file_name);message =message(:,:,1);Mm=size(message,1);Nm=size(message,2);blocksize=8;blocksize1=2;m=(Mc*Nc)/(blocksize2);M=(4*Mm*Nm)/(blocksize12);x=1;y=1;j=1;for(kk=1:m) s=svd(cover_object(y:y+blocksize-1,x:x+blocksize-1); A0(1,j:(j+3)=s(1:4,:); j=j+4; if(x+blocksize)=Nc x=1;y=y+blocksize; else x=x+blocksize; end endA=A0(:,1:4*Mm*Nm);q=reshape(A,2*Mm,2*Nm);x=1;y=1;j=1;i=1;for(kk=1:M) s=svd(q(y:y+blocksize1-1,x:x+blocksize1-1); A1(i,j)=s(1,1); if(x+blocksize1)=2*Nm x=1; y=y+blocksize1; i=i+1; j=1; else x=x+blocksize1; j=j+1; endendu,s,v=svd(A1);%a=input(message)a=0.4;u1,s1,v1=svd(s+a*message);save s s;save u1 u1;save v1 v1;A=u*s1*v;i=1;j=1;x=1;y=1;for(kk=1:M) u,s,v=svd(q(y:y+blocksize1-1,x:x+blocksize1-1); s(1,1)=A(i,j);midA(y:y+blocksize1-1,x:x+blocksize1-1)=u*s*v; if(x+blocksize1)=2*Nm x=1;y=y+blocksize1;i=i+1;j=1; else x=x+blocksize1;j=j+1; endendA=reshape(midA,1,4*Mm*Nm);A0(:,1:4*Mm*Nm)=A;watermarked_image=cover_object;x=1;y=1;j=1;for(kk=1:m) u,s,v=svd(cover_object(y:y+blocksize-1,x:x+blocksize-1); s(1:4,1:4)=diag(A0(1,j:j+3); watermarked_image(y:y+blocksize-1,x:x+blocksize-1)=u*s*v; j=j+4; if(x+blocksize)=Nc x=1;y=y+blocksize; else x=x+blocksize; end endscramble=uint8(midA);imwrite(scramble,midA.bmp,bmp);outme=uint8(watermarked_image);imwrite(outme,svd_watermarked.bmp,bmp);elapsed_time=cputime-start_timexsz=255*255*Nc*Mc/sum(sum(cover_object-watermarked_image).2);psnr=10*log10(xsz)figure(1)subplot(2,2,1),imshow(imread(lena.bmp)title(原图)subplot(2,2,2),imshow(uint8(message)title(水印)subplot(2,2,3),imshow(scramble,)title(置乱图)subplot(2,2,4),imshow(outme,)title(含水印图)程序说明2将水印提取出来,并与原来的水印相比较的matlab程序代码clear all;start_time=cputime;file_name=svd_watermarked.bmp;cover_object=double(imread(file_name);cover_object =cover_object(:,:,1);Mc=size(cover_object,1);Nc=size(cover_object,2);file_name=wp.bmp;org_message=double(imread(file_name);org_message =org_message(:,:,1);Mm=size(org_message,1);Nm=size(org_message,2);blocksize=8;blocksize1=2;m=(Mc*Nc)/(blocksize2);M=(4*Mm*Nm)/(blocksize12);x=1;y=1;j=1;for(kk=1:m) s=svd(cover_object(y:y+blocksize-1,x:x+blocksize-1); A0(1,j:(j+3)=s(1:4,:); j=j+4; if(x+blocksize)=Nc x=1;y=y+bl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论