基于奇异值分解的图像压缩处理

基于奇异值分解的图像压缩处理
基于奇异值分解的图像压缩处理

矩阵奇异值分解在图像压缩中的应用

电子科技大学 微固学院 贾旺旺

[摘要]本文首先介绍了矩阵的奇异值分解(SVD)定理,然后讨论了基于矩阵奇异值分解的图像压缩编码原理,最后文中给出了实例,并用matlab 编程实现了图像的压缩和重构,发现随着图像压缩比的减小,图像传输时间增大,但重构后得到的图像失真度减小了。

[关键词]奇异值分解 图像压缩 压缩比 一.引言

随着网络的快速发展,数据量的增长也十分迅速,这使人们必须想办法如何能以最少的存储空间,最大的传输效率来进行数据的存储和传输。如在宇航中,拍摄得到的图像文件一般都比较大且数量也很多,它的存储,传输和处理会受到一定的限制,因此图像压缩就显得格外重要。图像压缩技术就是要减少图像数据中的冗余信息从而以更加高效的格式存储和传输数据。

图像压缩的基本方法包括无损压缩的行程长度编码,熵编码法;有损压缩的色度抽样法,变换编码,分形压缩等。近几年,基于矩阵奇异值分解的图像压缩方法也得到了很多学者的关注[1]

。因为图像的像素点具有矩阵的结构,我们可以利用奇异值分解来对任意阶数的矩阵操作。本文就是利用了矩阵的奇异值分解,达到了图像压缩的目的。 二. 矩阵奇异值分解原理[2] 引理 1

的非零特征值相同

的特征值均为非负实数,则有

设H H H H H H n

m r

AA A A AA A A AA rank A A rank A rank C A ,)3(,)2()()()()1(==∈? )

()()()(00)(0

0)()1(:1111111A A rank A rank A A rank A rank Ax Ax Ax Ax A x Ax A x X k n Ax A k A A rank H H H H H

H H

H H =?≤?=?==?=?-=?=维,记为的解空间为设证明0

),(),(),(),(0)2(≥?===≤?=λααλλααααααλααA A A A A A H H

.

...,,,...,,0...0)...(0

...0...,...,..

)()()(0

......0......)3(2121221122112211221111k 21121复度相同的非零特征值的代数重与所以的维数的特征子空间的维数不大于的特征子空间同理可证:的维数特征子空间的维数不大于的特征子空间线性无关,全为零一组基底

的特征子空间是设下面考虑其代数重数:

的非零特征值的非零特征值也是同理可证:的非零特征值也是的特征值为的特征值是是A A AA V A A V AA V AA V A A Ay Ay Ay k k k y k y k y k y k y k y k Ay A k Ay A k Ay A k Ay k Ay k Ay k V A A y y A A AA AA A A AA A A A A AA A A AA A A H H H H H H p p p p p p p H p H H p p H p H H H i i i i H i H i H i i i H m k H n r r H λλλλλλλαλααααλαμμμμμλλλλλ???=+++?=+++?=+++?=+++?

=?=?====>≥≥≥====>≥≥≥++定义 1

的正奇异值。

为的奇异值为则称的特征值为设A r i A n i A A C A i i i i n r r H n

m r

),...,2,1(,),...,2,1(.

0......,121=======>≥≥≥∈+?λσλσλλλλλ 定理 1

.),...,2,1),,...,,(000n ,...,,,i i i 2121n

m r

的复数(是满足而,其中得,使

阶酉矩阵及阶酉矩阵个正奇异值,则存在的是设r i diag D V D U A V U m r A C A r r ===???

? ??=∈?σ

δδδδδσσσ)

2()()()

1(00)(00)(0,000,,)0,...0,,...,,(000n 1111111211212211112222222112212

2111)(212122221D D D D AV A V D AV U AV U D AV U U U U U U U A V D U AV AV AV AV A V AV A V D D AV A V D D AV A V AV A V AV A V AV A V C V C V V V V diag D D AV

VA A A H H H

H H H

H

H

H

H

H H H H H

m

r r H H H

H

H

H H H H H H H H H H H H H H H H

H H n r n r n n r r r H H

H

H

====?==????

? ??=?∈=?=?==?==???? ??=???? ???∈∈???? ??==???

?

??=?---?-?--?σσσ阶正规矩阵为证明:

???

? ??===?=000)3(0,0022212D AV

U AV U AV U AV H

H

H

H

H

H

H

所以

三.基于奇异值分解的图像压缩编码 1.图像的压缩

奇异值分解算法的一个重要的特征是可以降维。设A 是n m ?型矩阵,表明A 是n 个m 维向量,若A 的秩为r 我们可以通过奇异值分解,将A 表示为r 个m 维向量和r 个n 维向量。若A 的秩小于或远小于m 和n ,那么就可以通过奇异值分解达到降维的目的。

以一幅有n n ?个像素点的图画为例,当n 很大时,如果将这2

n 个像素点全

部传送,虽然得到的图像失真度很低,但是传输的效率也会很低。而我们希望在误差允许范围内,尽可能快的传送数据,且在数据接收端能够根据得到的数据重构图像。另外,大的奇异值对图像的贡献大,小的奇异值对图像的贡献小,所以可以从r 个正奇异值中选取前k )(r k <个较大的特征值,再结合这k 个奇异值对应的左右酉矩阵向量,来近似表示图像。那么需要传送的像素点就变成了

)12(+n k 个,如果2)12(n n k <+,就会提高传输效率。定义图像压缩比为:

)

12(2

+=n k n ρ (3-1)

显然,如果k 值越小,则压缩比越大,需要传送的像素点也越小,因而传输速度越快,但是得到的图像失真度将越大,反之亦然。 2. 图像的重构

’和’,’’可以写为那么的特征值为列向量均为二维

和其中以二维数组为例,如21222111212121212121,,,,,),,(00),(βββαλβαλλλββααββλλαα+=????

?

?=A A A A 转置向量,同理,若A 为n m ?型矩阵,那么在图像的数据接收端,接收到的是k 个奇异值和k 个m 维列向量,k 个n 维列向量。近似有公式:

∑=∧

=k

i T

i i i v u A 1σ, (3-2)

那么就可以通过∧

A 近似作出图像。

在matlab 中读入图像的数据类型是uint8,而在矩阵中使用的数据类型是double ,因此需要将图像数组转换为double 类型,如果不转换,在对uint8进行加减时可能会产生错误[3]。我们都知道图像一般都是由三原色R,G,B 构成的,matlab 中提取出一幅图像的像素点也是由R,G,B 三原色构成,它是一个三维数组,设为L ,那么L(:,:,1)表示R 原色构成的二维数组,元素值在[0,255],同理,L(:,:,2)表示G 原色,L(:,:,3)表示B 原色。通过转换为double 数据类型,矩阵中每个元素值在[0,1]内。

四.图像压缩和重构的matlab 代码实现 1.算法流程

根据上述原理,文中选取了一幅JPG 图片,命名为pic ,像素为648*991。利用matlab 先提取出了像素矩阵A ;然后将这个三维数组拆分为三个二维数组,即R,G,B 三个三原色矩阵,对这三个二维数组利用SVD 方法,计算其奇异值;选取前k 个奇异值及其对应的向量,进行图像压缩处理;最后重构图像。为了对比压缩效果和传输时间,分别令k=10,50,100。k 为选取的奇异值的个数。下图给出了压缩和重构过程的流程图。

开始

提取图片pic 的像素矩阵L

将矩阵L 拆分为三个二维矩阵

对三个二维矩阵做SVD 分解

作出原图像,及R,G,B 三原色图

选取k个奇异值和对应向量,

利用(3-2)重构图像

终止

2.代码实现

clc

clear Q

L=imread('pic.jpg');

L1=L(:,:,1);

L2=L(:,:,2);

L3=L(:,:,3);

I1=im2double(L1);I2=im2double(L2);I3=im2double(L3); % maltab读入图像时,用` 的是unit8型

% 显示原图像

subplot(4,4,1); imshow(L); title('原图像');

subplot(4,4,2); imshow(I1); title('原图像R原色');

subplot(4,4,3); imshow(I2); title('原图像G原色');

subplot(4,4,4); imshow(I3); title('原图像B原色');

% 做奇异值分解

[u1,s1,v1]=svd(I1);

[u2,s2,v2]=svd(I2);

[u3,s3,v3]=svd(I3);

% 用来存储数据压缩后的三个矩阵

C1=zeros(size(I1));

C2=zeros(size(I2));

C3=zeros(size(I3));

k=10; % 取前10个特征值

% 利用公式重构矩阵

for j=1:k

C1=C1+s1(j,j)*u1(:,j)*v1(:,j).';

end

for j=1:k

C2=C2+s2(j,j)*u2(:,j)*v2(:,j).';

end

for j=1:k

C3=C3+s3(j,j)*u3(:,j)*v3(:,j).';

end

R1=im2uint8(C1); % 所占字节数较double型少

R2=im2uint8(C2);

R3=im2uint8(C3);

Q(:,:,1)=R1;

Q(:,:,2)=R2;

Q(:,:,3)=R3;

% k=10 压缩后图像

subplot(4,4,5); imshow(Q,[]); title('压缩后的原图像'); % 显示压缩后的原图像subplot(4,4,6); imshow(C1); title('压缩后的原图像R原色');

subplot(4,4,7); imshow(C2); title('压缩后的原图像G原色');

subplot(4,4,8); imshow(C3); title('压缩后的原图像B原色');

C1=zeros(size(I1));

C2=zeros(size(I2));

C3=zeros(size(I3));

k=50;

for j=1:k

C1=C1+s1(j,j)*u1(:,j)*v1(:,j).';

end

for j=1:k

C2=C2+s2(j,j)*u2(:,j)*v2(:,j).';

end

for j=1:k

C3=C3+s3(j,j)*u3(:,j)*v3(:,j).';

end

R1=im2uint8(C1);

R2=im2uint8(C2);

R3=im2uint8(C3);

Q(:,:,1)=R1;

Q(:,:,2)=R2;

Q(:,:,3)=R3;

% k=50压缩后图像

subplot(4,4,9); imshow(Q,[]); % 显示压缩后的原图像

subplot(4,4,10); imshow(C1);

subplot(4,4,11); imshow(C2);

subplot(4,4,12); imshow(C3);

C1=zeros(size(I1));

C2=zeros(size(I2));

C3=zeros(size(I3));

k=100;

for j=1:k

C1=C1+s1(j,j)*u1(:,j)*v1(:,j).';

end

for j=1:k

C2=C2+s2(j,j)*u2(:,j)*v2(:,j).'; end

for j=1:k

C3=C3+s3(j,j)*u3(:,j)*v3(:,j).'; end

R1=im2uint8(C1); R2=im2uint8(C2); R3=im2uint8(C3); Q(:,:,1)=R1; Q(:,:,2)=R2; Q(:,:,3)=R3;

% k=100压缩后图像

subplot(4,4,13); imshow(Q,[]); %显示压缩后的原图像 subplot(4,4,14); imshow(C1); subplot(4,4,15); imshow(C2); subplot(4,4,16); imshow(C3);

3.结果分析

由于原图像是一个648*991的图像,相当于矩阵为m=648,n=991。利用公式

(3-1),压缩比可写为:

)1(++??=

n m k n

m ρ。那么当k=10, 50, 100时压缩比分别为

92.3,83.7,16.39321===ρρρ。另外由matlab 计算出图像传输时间(或称为图

下所示:

单位为秒。画出图像如。分别为像重构时间像压缩时间,不包括图728.13,003.13,521.12)321===t t

t

可以看出,随着压缩比的减小,图像传输所用的时间逐渐增大,而图像的失真度越来越小,即图像越来越接近真实图像。

为了更清晰的对比出结果,只做出彩色图来对比,结果如下:

(a) 原图像 (b) k=10

(c) k=50 (d) k=100

我们发现,随着压缩比的减小,图像失真度确实是越来越小。验证了我们之前的说法是正确的。

四.结论与展望

本文基于矩阵的奇异值分解,利用matlab实现了图像的压缩处理和重构,得到结论:随着图像压缩比的减小,重构后得到的图像失真度减小了,但图像传输时间增大了,虽然时间增加的不明显,但是如果图片的数量增多,那么时间的增加将会很明显。因此需要进一步的研究来选取一个最优的k值。使时间和失真度上都得到较好结果。

另外,因为本文中只选取了一张普通的图片,如果是一张超高清的图片或者数量很多的照片,那么就会得到一个大型矩阵,或者很多个大矩阵,利用matlab 自带函数进行矩阵奇异值分解速度就会过慢,因此需要寻找新的算法来快速实现大型矩阵的奇异值分解。

五.参考文献

[1] 吴俊政. 一种基于奇异值分解的图像压缩方法[J]. 2009年5月

[2] 黄延祝,钟守铭,李正良.矩阵理论.高等教育出版社,2003,119-121

[3] matlab图像数据类型转换. https://www.360docs.net/doc/ee18512424.html,/p-332119385.html

首先要说明的一点是,虽然是自己编写Matlab程序,但并不是说一点也不用Matlab的自带函数。我们要编写的是实现小波变换的主要功能函数,而绘图等基本功能还是要用到Matlab函数的。而且,根据小波变换的滤波器组原理,原始信号要通过低通、高通滤波器处理,这里就涉及到卷积这一运算步骤。卷积——FFT算法的实现,相信很多朋友都能用 Matlab、C语言等来实现,不过与Matlab自带的用机器语言编写的FFT程序相比,运算速度一般会慢几倍、几十倍。所以,我的程序里边涉及卷积的就直接调用Matlab的conv()函数了。 我们知道,小波变换的一级分解过程是,原始信号分别进行低通、高通滤波,再分别进行二元下抽样,就得到低频、高频(也称为平均、细节)两部分系数;而多级分解则是对上一级分解得到的低频系数再进行小波分解,是一个递归过程。以下是一维小波分解的程序: function [cA,cD] = mydwt(x,lpd,hpd,dim); % 函数 [cA,cD]=MYDWT(X,LPD,HPD,DIM) 对输入序列x进行一维离散小波分解,输出分解序列[cA,cD] % 输入参数:x——输入序列; % lpd——低通滤波器; % hpd——高通滤波器; % dim——小波分解级数。 % 输出参数:cA——平均部分的小波分解系数; % cD——细节部分的小波分解系数。 cA=x; % 初始化cA,cD cD=[]; for i=1:dim cvl=conv(cA,lpd); % 低通滤波,为了提高运行速度,调用MATLAB 提供的卷积函数conv() dnl=downspl(cvl); % 通过下抽样求出平均部分的分解系数

奇异值分解(SVD)和图像矩阵的分解测试 · SVD简单介绍 在很多情况下,数据的绝大部分信息往往集中在很小一部分数据上,我们知道线性代数中有很多矩阵的分解技术可以将矩阵表示成易于处理或是表达简化的形式。最常见的一就种是SVD(Singular Value Decomposition)算法。 SVD将数据分解成三个矩阵U,S,VT,这里得到的S是一个对角阵,其中对角元素为奇异值,它代表着矩阵的重要特征,从左上角到右下角重要程度递减。因为奇异值往往对应着矩阵中隐含的重要信息,而且奇异值大小与重要性正相关。 优点:简化数据,优化数据的表达形式。 缺点:难于计算。 关于奇异值分解的定义和相关推导,推荐参考这篇文章,介绍的非常清晰易懂:机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用 故公式什么的这里就不列出了,理解了理论后,我们来小小测试一下,以体会其强大之处。 · matlab测试图像SVD 这里使用的是matlab函数svd():[U,S,V]=svd(A);

输出结果:图像大小为256x256,奇异值有256个,结果可见前50个特征就基本涵盖了原图所有信息。 理解PCA和SVD 发表于 2015-12-04 | 分类于数学杂谈| | 阅读次数 4136 By Z.H. Fu 切问录https://www.360docs.net/doc/ee18512424.html, 摘要 本文主要从分解形式上讲述了PCA(Principal Component Analysis,主成分分析)和SVD(Singular Value Decomposition奇异值分解)的目的和方法,对于两种方法都给出了一种直观的理解。简单起见,本文不给出具体的应用实例。 ## PCA 主成分分析(PCA)常用于提取一系列多维样本的共同特征。那么,怎么理解特征?我们假设每个样本是由一系列的特征线性组合而成的,PCA的目的就是去找到这些特征,然后将每一个样本表示为这些特征的组合,实际上PCA找到了样本空间中的一组基,将每一个样本表示为这组基的线性组合,因此,每一个基就是一个特征。那么,特征需要满足哪些性质呢?其实就一点,特征之间的关系应该越少越好。用基来描述就是

人机交互大作业 ——人脸识别

“人脸识别”系统设计文档 人脸识别的意义及应用 人脸识别是指对视频或图像中的人脸进行发现,追踪,进而识别出是特定个体的一种生物特征技术,也是生物特征识别中最主要的研究方向之一。人脸识别在日常生活中有着非常广泛的应用市场。下面列举了一些人脸识别的主要应用:1.监控系统 监控系统在日常生活中非常常用,是防盗系统的主要组成部分之一。人工智能的监控系统的一大优势就是可以将人类从每天对着监视器的枯燥工作中解脱出来。将监视的工作交给计算机来做,有几个优势。一是可以365天,24小时不间断的工作。二是可以不知疲倦,不会因为时间长而分散注意力。但是人工智能的监控系统仍面临着很多问题,比如漏识别,识别误差等等。2.身份验证 身份验证系统可以应用的范围也很广。比如现有的银行存取款系统,当人的银行卡和密码同时丢失时,卡中的钱就可能被转走。但是如果在取款机上安装一个人脸识别系统,在提供银行卡和密码时,同时需要进行面部认证,这样就会大大降低个人财产损失的风险。 3.考勤系统 考勤系统通常用在公司里。传统的考勤系统需要给每个员工分配一张考勤卡,每天上下班需要去打卡。这样会给员工带来一定的不便。如果员工忘记带卡,或者卡有损坏,就会耽误打卡。而且专门设立打卡地点,不仅上下班打卡不方便,而且还会出现替打卡的情况。使用人脸识别系统,可以在不被觉察的情况下,自然地实现员工的考勤。减少了很多不必要的麻烦。 4.视频、图像检索 随着人们对图像,视频等需求的不断扩展,网络上的图像和视频信息量也在以极快的速度增长。在如此庞大的信息库中快速查找到用户需要的信息成了现在研究的一个重要方向。而现在最主流的方式是在视频和图像上附带描述信息。这种描述信息可以被发布人随意更改,很多时候会对用户产生误导,浪费了时间。而用人脸识别进行图像和视频的检索,在检索某些特定人相关的资源时,会大大提高搜索结果的质量。再配合上描述关键词,能使人更快速寻找到所需信息。 人脸识别的优势和困难 人脸识别相对于传统的身份验证技术,和现有的虹膜识别,指纹识别等技术有一个显著的优势,就是可以自然地获取识别对象的身份信息,而不需要识别对象刻意的配合。虹膜识别和指纹识别都需要识别对象的配合。在这种情况下,识别对象可以有意识的进行伪装和欺骗。而人脸识别是在人们不经意的时候对人们图像的采集和识别,不会引起识别对象的注意。因此从某种意义上更容易获得真实的信息。 虽然人脸识别有着不可比拟的优势,但是在实现方面还有着很大的困难。

%程序段: clear all A=imread('鬼兰.jpg') %读入原图 B=rgb2gray(A) %转灰度图像newmap=rgb2gray(A) C=double(B); %转浮点型 nbcol=size(B,1); [cA1,cH1,cV1,cD1]=dwt2(C,'db1'); %第一次分解dec1d=[cA1,cH1;cV1,cD1]; [cA2,cH2,cV2,cD2]=dwt2(cA1,'db1'); %第二次分解 dec2d=[cA2,cH2;cV2,cD2] [cA3,cH3,cV3,cD3]=dwt2(cA2,'db1'); %第三次分解 dec3d=[cA3,cH3;cV3,cD3] %由二维小波分解重构原始图像 t1=size(dec3d) %第一次重构 X1=idwt2 (cA3,cH3,cV3,cD3,'db1',t1) t2=size(dec2d) %第二次重构 X2=idwt2 (X1,cH2,cV2,cD2,'db1',t2) t3=size(dec1d) %第三次重构 X3=idwt2 (X2,cH1,cV1,cD1,'db1',t3) %在同一窗口中显示以上各图像subplot(2,4,1),imshow(A),title('原图') subplot(2,4,2),imshow(B),title('灰度图像') subplot(2,4,3),imshow(dec1d,[ ]),title ('第一次分解后图像') subplot(2,4,4),imshow(dec2d,[ ]) ,title('第二次分解后图像') subplot(2,4,5),imshow(dec3d,[ ]),title('第三次分解后图像') subplot(2,4,6),imshow(X1,[ ]),title ('第一次重构') subplot(2,4,7),imshow(X2,[ ]),title ('第二次重构') subplot(2,4,8),imshow(X3,[ ]),title ('第三次重构') %db1分解及重构图像:

矩阵的奇异值分解 在数字图像处理的应用浅析 学院:··· 专业:·· 姓名:·· 学号:·· 2011年11月6日

目录 一、绪论.................................................................................................................. - 1 - 二、数字图像处理简介 ................................................................................................ - 2 - 三、矩阵的奇异值分解原理 ......................................................................................... - 4 - 3.1 矩阵的奇异值................................................................................................. - 4 - 3.2 矩阵的奇异值分解(SVD)............................................................................ - 4 - 四、奇异值分解的图像性质 ......................................................................................... - 5 - 五、图像的奇异值分解压缩方法 .................................................................................. - 7 - 5.1 奇异值分解压缩原理分析 ............................................................................... - 7 - 5.2 奇异值分解压缩应用过程 ............................................................................... - 8 - 六、小结.................................................................................................................. - 9 -

基于奇异值分解的图像压缩及实现 本文利用奇异值分解方法,来对图片进行压缩,过程中我们 利用Matlab 编程来达到这个目的。 一:实验方法及原理 奇异值:矩阵A 的奇异值定义如下:设n *m r C A ?(r>0),且A A T 的特征值分别为 0n 1r r 21==??=≥≥??≥+λλλλλ (1) 则称i i λσ= (i=1,2,…,n )为A 的奇异值。 奇异值分解定理:设Σ=diag(r 21...σσσ,, ,),由式(1)可知,i σ(i=1,2,…,r )为A 的非零奇异值。U 为m 阶酉矩阵(n 阶复 方阵U 的n 个列向量是U 空间的一个标准正交基,则U 是酉矩阵),V 为n 阶酉矩阵,若满足矩阵等式 (2) 则称式(2)为A 的奇异值分解。若U 写成U =[m 21u ......u u ,, ,]的形式,V 写成V=[n 21v ......v v ,, ,]的形式,则式(2)可写成如下形式: (3) 由于大的奇异值对图像的贡献大,小的奇异值对图像的贡献小,所以可以从r 个奇异值生成矩阵中选取前k 个(k

(4) 近似表示图像A。 存储图像A需要mn个数值,存储图像k A需(m+n+1)k个数值,若取 (5) 则可达到压缩图像的目的,比率 (6) 称为压缩率 二:实验过程 1.实验数据来源: 本实验所需要的实验原图片是lena.bmp,处理后的图片设置为lena2.bmp。并获取图片的描述矩阵,为512*512阶8位的方阵。 设为A,同时也是原始矩阵,本实验主要是对A进行奇异值分解,用一个更小阶的矩阵来描述A,从而达到实验目的。 2.实验过程: 提取图像lena.bmp数据,将图片读入Matlab中,存储的是数据矩阵并且设置为512*512的矩阵A,将矩阵A中的数据转换为double型,以适应svd函数的要求,运用函数[U,S,V]=svd(A)进行图像的奇异值分解,分别得到对角奇异值矩阵S为512*1阶,以

奇异值分解法计算广义逆 线性最小二乘问题的广义逆求解 (丁梁波 整理) 对于任意的n m ?方程组:b Ax = 其中?? ?? ? ?????=mn m n a a a a A 1111 ???? ? ?????=n x x x 1 ???? ? ?????=m b b b 1 如果n m =,只要n 方阵A 非奇异,就有逆阵1-A ,从而得到解b A x 1-=。然而,对于n m ≠的一般情况,A 是长方阵,就没有通常的逆阵。不过它仍然可以有相应于特定方程类型的几种形式的广义逆矩阵,其中适于任何情况的广义逆叫做Penrose 广义逆,记为+A 。于是,方程的解可以为: b A x += 由奇异值分解(SVD )可以将A 分解为: T V U A ∑= 其中U ,V 分别为m ,n 阶正交阵 ??? ?????? ? ????? ???? ?=∑001 r σσ 这样A 的广义逆+A 可表示为: T U V A 1-+∑= 其中 ?? ?? ??∑=∑- -0001 1 r ???? ??????=∑---1111r r σσ 这样我们可以看出,完成A 的奇异值分解后,求解A 的广义逆就变得很简单,从

而可以方便地求出方程组的最小二乘解。下面我们说明对矩阵进行奇异值分解的方法和步骤。 通常情况下我们考虑m>n 时矩阵A 的奇异值分解,因为当m

基于四元数奇异值分解的图像质量评价方法 摘要: 关键词:四元数奇异值分解图像质量评价 图像质量评价是图像处理的重要研究内容之一,作为算法性能评判及参数优化的重要指标,图像质量评价对于图像采集、压缩、编码、去噪、增强、水印、认证、存储、合成、复制等相关领域具有重要意义一。图像质量评价用来表征畸变图像相对于作为标准图像的原始图像的差异程度,其中的畸变图像主要指对原始图像进行如下变换:噪声(高斯、椒盐)、模糊(失焦、大气湍流、运动模糊)、有损压缩(JPEG、JPEG2000、SVD、小波)等。图像质量评价主要有主观和客观两种方式。考虑到传统的主观质量评价不仅对实验条件要求有着苛刻的要求,而且实施步骤复杂,不能满足实时性的要求,客观质量评价吸引了更多关注。 根据参考图像的存在与否,客观图像质量评价方法又可分为全参考、半参考和无参考三种算法。其中,对于全参考算法的研究最为深入,并将其分为:①基于物理信号差异的方法,包括常见的均方误差(MSE),信噪比(SNR)和峰值信噪比(PSNR)等指标;②基于人言视觉系统(HVS)建模的方法。例如,视觉信噪比(VSNR)利用HVS的临界阈值和超阈值视觉感知特点改进SNR,以便更好的吻合人眼视觉感知结果;③基于结构相似性的方法。假设结构信息丢失是造成图像质量下降的唯一原因,此类方法包括了结构相似度(SSIM)和它的多分辨版本(MSSSIM);④基于自然场景统计(NSS)的方法,包括信息置信度标准(IFC)和视觉信息置信度(VIF)。 1.四元数基础 1.1 四元数及四元数矩阵的定义 1983年,英国数学家哈密顿(Hamilton W R)创造了四元数[1],一个四元数q是四维空间中的一个数,它包含一个实部a和三个虚部b、c、d,其基本形

现代信号处理 学号: 小组组长: 小组成员及分工: 任课教师: 教师所在学院:信息工程学院

2015年11月 论文题目 基于奇异值分解的MVDR方法及其在信号频率估计领域的 应用 摘要:本文主要是介绍和验证MVDR的算法,此算法应用于信号频率估计的领域中。我们通过使用经典的MVDR算法验证算法的可行性,再通过引用了奇异值分解的思想对MVDR方法进行了改进,在验证这种改进思想的方法可行性时,我们发现基于这种奇异值分解的MVDR方法在信号频率估计上具有提高检测精度的特性,这也说明了这种思想在应用信号频率估计时是可行的。 关键词:MVDR算法奇异值分解信号频率估计

论文题目(English) MVDR method based on singular value decomposition and its application in signal frequency estimation Abstract:In this paper, the algorithm of MVDR is introduced, and the algorithm is applied to the field of signal frequency estimation. By using the classical MVDR algorithm to verify the feasibility of the algorithm, and then through the use of the idea of singular value decomposition to improve the MVDR method, in the verification of the feasibility of the method, we found that the MVDR method based on the singular value decomposition has the characteristics of improving the detection accuracy in signal frequency estimation. It also shows that this idea is feasible in the application of signal frequency estimation. Key words: MVDR method Singular value decomposition Signal frequency estimation

%自适应奇异值分解(Adaptive Singular Value Decomposition)去噪%参考文献:Ashtiani M B, Shahrtash S M. Partial discharge de-noising employing adaptive singular value decomposition[J]. IEEE Transactions on Dielectrics & Electrical Insulation, 2014, 21(2):775-782. function y_denoised=ASVDdenoising(noisydata,k) if size(noisydata,1)>size(noisydata,2) noisydata=noisydata'; end N=length(noisydata); y_denoised=zeros(N,1); L=ceil(N/3); % Y=[]; % % for j=1:N-L % Y=[Y;noisydata(j:j+L)]; %HANKEL矩阵,大矩阵时这种构建方式(未事先确定矩阵尺寸)将会严重影响计算速度 % end Y=HankelMatrixCons(noisydata,L); [U,S,V]=svd(Y); %奇异值分解 g=diag(S); g1=sort(g(1:100),'ascend');

g1=g1/g(1)*100; n=length(g1); std_g=zeros(n,1); for j=1:n if floor(std(g1(1:j)))>0 M=j; break; end end for j=1:n std_g(j)=floor(std(g1(1:j))); end % subplot(2,1,1) plot(std_g,'-ro') if nargin==1 k=input('Input M\n'); % k=M; end Y1=U(:,1:(n+1-k))*S(1:(n+1-k),1:(n+1-k))*V(:,1:(n+1-k))';

图像增强 1. 直方图均衡化的Matlab 实现 1.1 imhist 函数 功能:计算和显示图像的色彩直方图 格式:imhist(I,n) imhist(X,map) 说明:imhist(I,n) 其中,n 为指定的灰度级数目,缺省值为256;imhist(X, map) 就算和显示索引色图像X 的直方图,map 为调色板。用stem(x,coun ts) 同样可以显示直方图。 1.2 imcontour 函数 功能:显示图像的等灰度值图 格式:imcontour(I,n),imcontour(I,v) 说明:n 为灰度级的个数,v 是有用户指定所选的等灰度级向量。 1.3 imadjust 函数 功能:通过直方图变换调整对比度 格式:J=imadjust(I,[low high],[bottom top],gamma) newmap=imadjust(map,[low high],[bottom top],gamma) 说明:J=imadjust(I,[low high],[bottom top],gamma) 其中,gamma 为校正量r,[low high] 为原图像中要变换的灰度范围,[bottom top] 指定了变换后的灰度范围;newmap=imadjust(map,[low high],[bottom top],gamm a) 调整索引色图像的调色板map 。此时若[low high] 和[bottom top] 都为2×3的矩阵,则分别调整R、G、B 3个分量。

1.4 histeq 函数 功能:直方图均衡化 格式:J=histeq(I,hgram) J=histeq(I,n) [J,T]=histeq(I,...) newmap=histeq(X,map,hgram) newmap=histeq(X,map) [new,T]=histeq(X,...) 说明:J=histeq(I,hgram) 实现了所谓“直方图规定化”,即将原是图象I 的直方图变换成用户指定的向量hgram 。hgram 中的每一个元素都在[0,1] 中;J=histeq(I,n) 指定均衡化后的灰度级数n ,缺省值为64;[J,T]=histeq(I,...)返回从能将图像I 的灰度直方图变换成图像J 的直方图的变换T ;newma p=histeq(X,map) 和[new,T]=histeq(X,...) 是针对索引色图像调色板的直方图均衡。 2. 噪声及其噪声的Matlab 实现 imnoise 函数 格式:J=imnoise(I,type) J=imnoise(I,type,parameter) 说明:J=imnoise(I,type) 返回对图像I 添加典型噪声后的有噪图像J ,参数type 和parameter 用于确定噪声的类型和相应的参数。 3. 图像滤波的Matlab 实现 3.1 conv2 函数 功能:计算二维卷积

基于奇异值分解计算MIMO 信道容量 摘要 无线MIMO 技术是未来无线通信系统中实现高数据速率传输、改善传输质量、提高系统容量的重要途径,它被认为是现代通信技术中的重大突破之一,受到了广泛的研究与关注。信道容量是信道的一个参数,反映了信道所能传输的最大信息量。因此研究MIMO 的信道容量具有巨大的指导意义。本文利用矩阵理论的相关知识,首先建立了MIMO 信道模型,利用信息论理论和奇异值分解的理论详细推导出MIMO 信道容量,并得出重要结论。 关键词: MIMO ;信道容量;奇异值分解 一、 引言 MIMO 系统是能够有效提高无线频谱利用率最重要的方案之一。MIMO 系统使用多根发射天线、多根接收天线, 在系统容量、频谱效率、发射机和接收机的设计上都与传统的单发单收系统有很大差别。然而,MIMO 无线系统大容量的实现和其它性能的提高极大地依赖于MIMO 无线信道的特性,MIMO 无线通信的难点也正在于信道的处理。矩阵理论在通信,自动控制等工程领域里应用广泛,将矩阵理论与无线信道的研究是一个很好的切入点。目前,MIMO 技术的信道容量和空时编码,空时复用等技术都离不开矩阵理论的应用。 二、 奇异值分解的概念 下面介绍一下矩阵奇异值分解的理论。 首先,给出奇异值的概念。 设,m n H r A C A A ?∈的特征值为 121n 0r r λλλλλ+≥≥≥>===…… (2.1) 则称1,2,...,)i i r σ= =为矩阵A 的正奇异值。 进而,奇异值分解理论可以阐述为: 对任意矩阵m n r A C ?∈,12,,...,r σσσ是A 的r 个正奇异值,则存在m 阶酉矩阵U 及n 阶酉矩阵V ,使得 D 0V 00A U ??= ??? (2.2) 其中12D=diag ,,...,),r δδδ(而i δ满足||(1,2,...,)i i i r δσ==的复数。 三、 MIMO 信道模型的建立 为了描述MIMO 信道,考虑考虑基站(BS)天线数R n ,移动台(MS)天线数为T n 的两个均匀线性天线阵列,假定天线为全向辐射天线。每个符号周期内,移动台天线阵列上的发射信号为 12()[(),(),...,()]T n s t s t s t s t =,其中()m s t 表示第m 个天线元上的发射信号。同样地,基站天线阵列上的

数字图像去噪典型算法及matlab实现 希望得到大家的指点和帮助 图像去噪是数字图像处理中的重要环节和步骤。去噪效果的好坏直接影响到后续的图像处理工作如图像分割、边缘检测等。图像信号在产生、传输过程中都可能会受到噪声的污染,一般数字图像系统中的常见噪声主要有:高斯噪声(主要由阻性元器件内部产生)、椒盐噪声(主要是图像切割引起的黑图像上的白点噪声或光电转换过程中产生的泊松噪声)等; 目前比较经典的图像去噪算法主要有以下三种: 均值滤波算法:也称线性滤波,主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声,但容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理。 中值滤波:基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化。 Wiener维纳滤波:使原始图像和其恢复图像之间的均方误差最小的复原方法,是一种自适应滤波器,根据局部方差来调整滤波器效果。对于去除高斯噪声效果明显。实验一:均值滤波对高斯噪声的效果 I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');%读取图像 J=imnoise(I,'gaussian',0,0.005);%加入均值为0,方差为0.005的高斯噪声 subplot(2,3,1);imshow(I); title('原始图像'); subplot(2,3,2); imshow(J); title('加入高斯噪声之后的图像'); %采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波 K1=filter2(fspecial('average',3),J)/255; %模板尺寸为3 K2=filter2(fspecial('average',5),J)/255;% 模板尺寸为5 K3=filter2(fspecial('average',7),J)/255; %模板尺寸为7 K4= filter2(fspecial('average',9),J)/255; %模板尺寸为9 subplot(2,3,3);imshow(K1); title('改进后的图像1'); subplot(2,3,4); imshow(K2); title('改进后的图像2');

地球物理系反演报告 实验一奇异值分解计算广义逆G+ 专业:地球物理学 姓名: 学号: 指导教师:邵广周

实验一 奇异值分解计算广义逆G + 一、基本原理 对于任意的n m ?方程组:b Ax = 其中??????????=mn m n a a a a A 1 111 ?? ?? ? ?????=n x x x 1 ??????????=m b b b 1 如果n m =,只要n 方阵A 非奇异,就有逆阵1-A ,从而得到解b A x 1-=。然而,对于n m ≠的一般情况,A 是长方阵,就没有通常的逆阵。不过它仍然可以有相应于特定方程类型的几种形式的广义逆矩阵,其中适于任何情况的广义逆叫做Penrose 广义逆,记为+A 。于是,方程的解可以为: b A x += 由奇异值分解(SVD )可以将A 分解为: T V U A ∑= 其中U ,V 分别为m ,n 阶正交阵 ? ????????? ????? ???? ?=∑00 1 r σσ 这样A 的广义逆+A 可表示为: T U V A 1-+∑= 其中 ??????∑=∑--0001 1 r ????????? ?=∑---1111r r σσ

这样我们可以看出,完成A 的奇异值分解后,求解A 的广义逆就变得很简单,从而可以方便地求出方程组的最小二乘解。下面我们说明对矩阵进行奇异值分解的方法和步骤。 通常情况下我们考虑m>n 时矩阵A 的奇异值分解,因为当m

K-SVD 算法的图像去噪的实验 一:引言 现实中的图像在数字化和传输过程中由于常受到成像设备与外部环境噪声干扰等影响,从而降低了图像的质量,对图像的理解和解译造成了不小的困难,因此,在图像处理中,图像噪声抑制成为关键,也是后续图像的特征提取、分割、识别等工作的基础。噪声抑制技术的主要目标就是:在有效的去除噪声的同时保持纹理、边缘等细节信息。 传统的图像噪声抑制的方法有空间滤波技术和变换域滤波技术。其中空间滤波技术主要包括均值滤波、中值滤波、Lee 滤波等,这些方法虽然比较简单,且易于实现,但是会造成图像边缘和线性目标的模糊。变化域滤波技术主要包括小波变换、平稳小波、Bandelet 变换、Curvelet 变换和非下采样Contourlet 变换等。这些变换域滤波相比经典空间滤波方法来说,图像的边缘及线性目标的保持能力有了很大的提高。但大都需要对变换域的系数做某种统计假设,而这些假设是经验性的,无理论依据。且噪声和图像边缘具有相似的频率特性,即都是高频信号。因此噪声抑制后的图像在均匀区域和边缘附近常有伪吉布斯效应。 目前,一种新兴的“字典训练法”在图像处理中得到了广泛的研究和应用,其核心是字典的训练过程,称为K--SVD 方法。此算法首先是由 Aharon 、Elad 等人提出的。研究表明:K--SVD 方法不仅可以有效的抑制加性高斯白噪声,而且可以较好的保留边缘和纹理等重要信息,尤其是对纹理图像的结果更好。最重要的是此方法具有很好的适应性。 本文首先诠释下K--SVD 算法的基本思想,然后通过几个实验对比下该算法与之前的算法的去噪效果。 二:K--SVD 算法的基本思想 1:K-均值 因为K-SVD 算法是由K-均值扩展而来,先简单介绍K-均值算法。K-均值算法要解决的问题是:求解一个包括K 个代码的码本,求在此码本上,根据最近邻分配法则,对包括N 个信号的信号集1{y }N i i Y ==,N>>K 进行分类,使得最佳分类的问题。此时,Y 中各向量被归类于与之距离最小的代码所代表的类中,用此代码压缩或描述类中的向量误差最小。 矢量量化(VQ )中,码本的训练可以用典型的K-均值算法实现。令12[c ,c ,...,c ]K C =为码本,C 中的列c i 为码本中的代码。当码本C 给定时,每个信号用最近(2 l 范数意义下)的一个代码表示。也就是说,i i y Cx ≈,其中i j x e =是自然基中的一个向量(除第j 个值为1外,其他的值都是0)。j 满足: 22 22 ,i j i k k j y Ce y Ce ?≠-≤- (1) 这相当于稀疏编码的一个特例:只用一个原子来表示信号i y ,同时强制系数等于1,这

第八章图像融合算法 8.1 图像融合技术的发展过程 随着科学的发展和技术的进步,采集图像数据的手段不断完善,出现了各种新的图像获取技术。如今,图像融合方法已经运用于社会的很多领域,像遥感卫星图像,光图像,红外图像,医学图像,尤其是多传感器图像融合应用以来,它已成为计算机视觉,目标识别,机器人以及军事等方面研究的重要方面。

8.2基于小波变换图像融合的基本原理 如果一个图像进行L 层小波分解,我们将得到(3L +1)层子带,其中包括低频的基带和层的高频子带。用代表源图像,记为,设尺度系数和小波函数对应的滤波器系数矩阵分别为,则二维小波分解算法可描述为: j C 3L ,h v d D D D 和(,)f x y 0C ()x Φ()x ΨH G 与11 1 j h j j v j j d j j C HC H D GC H D HC G D GC G +++′ =??′=??′=??′=?j+1(0,1, (1) j J =?(8-1)

小波重构算法为: 基于二维DWT 的融合过程如图1.1所示,ImageA 和 ImageB 代表两幅源图像A 和B ,ImageF 代表融合后的图像,具体步骤如下:(1)图像的预处理: 1h v d j j j j j C H C H G D H H D G G D G ?′′′′=+++(,1, (1) j J J =?(8-2) 图8.1 基于DWT 图像融合过程

①图像滤波 ②图像配准 (2)对ImageA和ImageB进行二维DWT分解,得到图像的低频和高频分量。 (3)根据低频和高频分量的特点,按照各自的融合算法进行融合。 (4)对以上得到的高低频分量,经过小波逆变换重构得到融合图像ImageF。 8.3 融合效果性能评价指标 8.3.1均值和标准差

1,插值算法(3种): (1)最邻近插值(近邻取样法): 最邻近插值的的思想很简单,就是把这个非整数坐标作一个四舍五入,取最近的整数点坐标处的点的颜色。可见,最邻近插值简单且直观,速度也最快,但得到的图像质量不高。 最邻近插值法的MATLAB源代码为: A=imread('F:\lena.jpg');%读取图像信息 imshow(A);%显示原图 title('原图128*128'); Row=size(A,1);Col=size(A,2);%图像行数和列数 nn=8;%放大倍数 m=round(nn*Row);%求出变换后的坐标的最大值 n=round(nn*Col); B=zeros(m,n,3);%定义变换后的图像 for i=1:m for j=1:n x=round(i/nn);y=round(j/nn);%最小临近法对图像进行插值 if x==0x=1;end if y==0y=1;end if x>Row x=Row;end if y>Col y=Col;end B(i,j,:)=A(x,y,:); end end B=uint8(B);%将矩阵转换成8位无符号整数 figure; imshow(B); title('最邻近插值法放大8倍1024*1024'); 运行程序后,原图如图1所示:

图1 用最邻近插值法放大4倍后的图如图2所示: 图2 (2)双线性内插值法: 在双线性内插值法中,对于一个目的像素,设置坐标通过反向变换得到的浮点坐标为(i+u,j+v),其中i、j均为非负整数,u、v为[0,1)区间的浮点数,则这个像素得值f(i+u,j+v)可由原图像中坐标为(i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所对应的周围四个像素的值决定,即:f(i+u,j+v)=(1-u)(1-v)f(i,j)+(1-u)vf(i,j+1)+u(1-v)f(i+1,j)+uvf(i+1,j+1) 其中f(i,j)表示源图像(i,j)处的的像素值,以此类推。 这就是双线性内插值法。双线性内插值法计算量大,但缩放后图像质量高,不会出现像素值不连续的的情况。由于双线性插值具有低通滤波器的性质,使高频分量受损,所以可能会使图像轮廓在一定程度上变得模糊。 在MATLAB中,可用其自带的函数imresize()来实现双线性内插值算法。

并行计算奇异值分解--Jacobi旋转 鉴于矩阵的奇异值分解SVD在工程领域的广泛应用(如数据压缩、噪声去除、数值分析等等,包括在NLP领域的潜在语义索引LSI核心操作也是SVD),今天就详细介绍一种SVD的实现方法--Jacobi旋转法。跟其它SVD算法相比,Jacobi法精度高,虽然速度慢,但容易并行实现。 一些链接 https://www.360docs.net/doc/ee18512424.html,/Article/CDMD-10285-1012286387.htm并行JACOBI方法求解矩阵奇异值的研究。本文呈现的代码就是依据这篇论文写出来的。 https://www.360docs.net/doc/ee18512424.html,/javanumerics/jama/ Jama包是用于基本线性代数运算的java包,提供矩阵的cholesky 分解、LUD分解、QR分解、奇异值分解,以及PCA中要用到的特征值分解,此外可以计算矩阵的乘除法、矩阵的范数和条件数、解线性方程组等。 http://users.telenet.be/https://www.360docs.net/doc/ee18512424.html,rmuseau/SVD.htm在线SVD运算器。 http://www.bluebit.gr/matrix-calculator/ bluebit在线矩阵运算器,提供矩阵的各种运算。 https://www.360docs.net/doc/ee18512424.html,/Projects/Matrix/C++ Matrix library提供矩阵的加减乘除、求行列式、LU分解、求逆、求转置。本文的头两段程序就引用了这里面的matrix.h。 基于双边Jacobi旋转的奇异值分解算法 V是A的右奇异向量,也是的特征向量; U是A的左奇异向量,也是的特征向量。 特别地,当A是对称矩阵的时候,=,即U=V,U的列向量不仅是的特征向量,也是A 的特征向量。这一点在主成分分析中会用到。 对于正定的对称矩阵,奇异值等于特征值,奇异向量等于特征向量。 U、V都是正交矩阵,满足矩阵的转置即为矩阵的逆。 双边Jacobi方法本来是用来求解对称矩阵的特征值和特征向量的,由于就是对称矩阵,求出的特征向量就求出了A的右奇异值,的特征值开方后就是A的奇异值。 一个Jacobi旋转矩阵J形如:

相关文档
最新文档