基于奇异值分解的图像压缩及其Matlab实
现(图文)
论文导读:本文在介绍奇异值分解基本原理的基础上,实现了基于奇异值分解的图像压缩,并给出了相关的Matlab程序。
本文以Lena 图像为例,说明了奇异值分解压缩率和峰值信噪比之间的关系,实验结果表明奇异值分解可较好地实现图像压缩。
关键词:图像压缩,奇异值分解,压缩率,峰值信噪比
1.前言
图像压缩是数字图像压缩的简称,图像压缩又称为图像压缩编码或图像编码。
在数字图像的存储、处理和传送过程中,采用高效的图像压缩技术可以节省传输资源、降低传输时间、提高传输效率。
科技论文。
图像压缩要解决的问题是尽量减少表示数字图像时需要的数据量[1]。
科技论文。
论文参考。
目前应用较为广泛的图像压缩方法有统计编码、预测编码、变换编码、分形图像压缩编码、利用神经网络的图像编码等。
近年来,奇异值分解方法在图像压缩编码上的应用得到了重视[2-3]。
本文在介绍奇异值分解原理的基础上,以512×512的Lena图像为例,给出了算法的Matlab程序,并对算法进行了评价。
2.奇异值分解的图像压缩原理
矩阵A的奇异值定义如下[4]:设(r>0),且AHA的特征值为
(1)
则称(i=1,2,…,n)为A的奇异值。
设Σ=diag(σ1,σ2,…,σr),由式(1)可知,σi(i=1,2,…,r)为A 的非零奇异值。
科技论文。
U为m阶酉矩阵,V为n阶酉矩阵,若满足
(2)
则称式(2)为A的奇异值分解[4]。
若U写成U =[u1,u2,…,um]的形式,V写成V=[v1,v2,…,vn]的形式,则式(2)可写成如下形式:
(3)
由于大的奇异值对图像的贡献大,小的奇异值对图像的贡献小,所以可以从r个奇异值生成矩阵中选取前k个(k<r)近似表示图像A,即取:
(4)
近似表示图像A。
存储图像A需要mn个数值,存储图像Ak需(m+n+1)k个数值,若取
(5)
则可达到压缩图像的目的,比率
(6)
称为压缩率。
论文参考。
论文参考。
3.奇异值分解图像压缩的Matlab实现
Lena的图像矩阵共有512个非零奇异值,其奇异值特征曲线如图1所示,随着i的增加,σi迅速减小。
σ1=64519,当i≥36时,σi<1000。
图1 图像Lena的奇异值特征曲线(512×512)
采用奇异值分解对该图像进行压缩,Matlab代码如下:
infile='Lena.bmp';
outfile='Lena2.bmp';
k=40;
A=imread(infile);
A=double(A);
[u,s,v] = svds(A,k);
im = uint8(u * s* v');
imwrite(im,outfile);
figure;imshow(im);
原始图像的文件名为Lena.bmp,将压缩后的图像命名为Lena2.bmp,程序的第6行计算矩阵A的最大k个奇异值与相关的奇异向量,得到u=[u1,u2,…,uk],s=diag(σ1,σ2,…,σk),v=[v1,v2,…,vk]。
在使用svds函数时,需要先将A的数据类型转换为double型(程序第5行),这里k取40(程序第3行)。
程序第7行对应公式(4),变量im存放压缩后的图像A40,程序第8行将A40保存为文件Lena2.bmp.
4.结果与讨论
在公式(4)中,k的取值不同时,矩阵Ak表示的图像效果有所不同,如图2所示(a)为原始图像,(b)、(c)、(d)、(e)、(f)分别为A40、
A80、A120、A160、A200所表示的图像。
从图(2)可知,k的取值越大,压缩后的图像效果越好,但同时压缩率越小。
对图像Lena而言,k取80时,压缩后的图像A80已非常接近原图像。
(a)(b)(c)
(d)(e)(f)
图2 k取值不同时图像Lena基于奇异值分解压缩的效果
不同的k值下,Lena图像的压缩率和峰值信噪比(dB)如表1所示:表1 不同k值时Lena图像的压缩率和峰值信噪比(dB)
k=40 k=80 k=120 k=160 k=200 σk 891.7391 426.6649 248.6300 155.2197 108.4801 CR 6.3938 3.1969 2.1313 1.5984 1.2788 PSNR 33.8219 37.1038 40.5122 43.5443 46.1676 在对矩阵进行奇异值分解时,采用分块的方法可降低计算量[3]。
此外,若将奇异值分解与小波
变换相结合对图像进行压缩[5-6],可以在相同压缩率的情况下,得到更高的峰值信噪比。
参考文献[1]Rafael C. Gonzalez,Richard E. Woods. 数字图像处理(第二版)[M]. 阮秋琦, 阮宇智, 译. 北京: 电子工业出版社. 2005[2]胡乡峰, 卫金茂. 基于奇异值分解(SVD)的图像压缩[J].东北师大学报(自然科学版), 2006, 38(3):36-39[3]吴俊政. 一种基于奇异值分解的图像压缩方法[J]. 计算机与数字工程. 2009, 37(5):136-138[4]徐仲, 张凯院, 陆全, 等. 矩阵论简明教程(第二版)[M]. 北京:科学出版社, 2005[5]叶松, 戴才良, 于志强, 等. 基于小波域奇异值分解的图像压缩算法[J]. 计算机工程与应用. 2008, 44(18):183-185[6]刘汉强. 基于奇异值分解(SVD)和小波变换的图像压缩算法[J]. 福建电脑. 2008, (1):55-56。