基于奇异值分解的图像压缩及实现

合集下载

基于奇异值分解(SVD)和小波变换的图像压缩算法

基于奇异值分解(SVD)和小波变换的图像压缩算法

团 扦撤 砬抽 固 列 簟取 抽 上 = ~样 上= 一 样
图 1多 分 辨 率 二 维 图 象小 波分 解 重 构 算 法
的 信 噪 比和 压 缩 率 。 其 中: 里 , 这 h和 分 别 代 表 低 通 分 析 滤 波 器 、 通 合成 滤 波 低 二 .、 变换 的基 本 概 念 ,波 J 器; g和 ; 别 代 表 高 通 分 析 滤 波 器 、 通 合成 滤 波 器 , 且 h 分 高 并 小波的概念最早是在 11 9 0年 由 HA R提 出 的 .从 此 开 辟 R 和 正 交 、 和 g正交 , 即 了信 号 处 理 研 究 的新 方 向 。但 直 到 上 世 纪 八 十 年 代 才 有 了突 破 季( ) ( 1” ( 一 = - )h 1 ) 性 的发 展 。 过 M r tMee、 a be i 等 科 学 家 的 潜 心 研究 , 经 ol 、 yrD u ehe e s g( ) ( )h(一 = 一1” 1 ) 小 波 分 析 正 在 逐步 取 代 传 统 的 傅 立 叶 分 析 。尤 其 是 由 M l t a a 提 l


引 言
在 多 媒体 应 用 日益 广 泛 的今 天 图 像 压 缩 占据 了越 来 越 重 要
的 地位 。经过 几 十 年 的 发 展 , 像压 缩 技 术 开始 走 向成 熟 。 世 图 上

纪八 十年 代 发 展 起来 的小 波 理论 为 图 像 处 理 与 压 缩 技 术 开 辟 了 全 新 的领 域 。经 过 小 波 变 换 后 的 信 号 ,被 分 解 为 高 频 和低 频 分 量 。 中低 频 分 量 集 中 了信 号 的 主要 信 息 , 频 部 分 集 中 了信 号 其 高 的 细 节信 息 。 即实 现 了多 分 辨 率 的 分 解 。 由于 人 的 生 理 特 性决 定 对 细 节信 息 的不 敏 感 .使 得 利 用 小 波 可 以实 现 信 号 压 缩 同 时尽 大 可 能地 保 留信 号 的 主要 成 分 。 国 内外 学 者 在 小 波 图象 压 缩 方 面 做 了非 常多 和 卓 有成 效 的 工 作 本 文 在 小 波 基 础 上 引入 奇 异 值 分 解来 进 行 图 像 压缩 。实 验 证 明 比单 纯 应 用 小 波 变换 有 较 高

使用奇异值分解进行矩阵分解的实际应用(Ⅰ)

使用奇异值分解进行矩阵分解的实际应用(Ⅰ)

奇异值分解(SVD)是一种重要的矩阵分解方法,它在数据分析、图像处理、推荐系统等领域有着广泛的应用。

在本文中,我们将探讨奇异值分解的原理及其在实际应用中的一些案例。

首先,让我们来了解一下奇异值分解的原理。

奇异值分解是将一个矩阵分解为三个矩阵的乘积的过程。

对于一个矩阵A,它的奇异值分解可以表示为A=UΣV^T,其中U和V是正交矩阵,Σ是一个对角矩阵,对角线上的元素称为奇异值。

通过奇异值分解,我们可以将原始矩阵表示为一些基础特征的线性组合,从而能够更好地理解和处理原始数据。

在数据分析领域,奇异值分解被广泛应用于降维和特征提取。

通过对数据矩阵进行奇异值分解,我们可以得到数据的主要特征向量和奇异值,从而可以选择保留最重要的特征,实现数据的降维处理。

这对于高维数据的可视化和分析非常有用。

此外,奇异值分解还可以用于去噪和数据压缩,通过去除奇异值较小的部分,可以实现对数据的有效压缩和去噪处理。

在图像处理领域,奇异值分解也有着重要的应用。

通过对图像矩阵进行奇异值分解,可以实现图像的压缩和去噪处理。

此外,奇异值分解还可以用于图像的特征提取和图像匹配,对于图像识别和图像处理有着重要的意义。

在推荐系统领域,奇异值分解被广泛应用于协同过滤算法。

通过对用户-物品评分矩阵进行奇异值分解,可以得到用户和物品的隐含特征向量,从而可以实现对用户和物品之间的关联关系进行分析和推荐。

奇异值分解在推荐系统中的应用,大大提高了推荐的准确性和效率。

除了上述领域之外,奇异值分解还在信号处理、文本挖掘、自然语言处理等领域有着重要的应用。

通过对大规模数据进行奇异值分解,可以实现对数据的有效分析和处理,为实际应用提供了强大的工具支持。

综上所述,奇异值分解作为一种重要的矩阵分解方法,具有广泛的实际应用价值。

在数据分析、图像处理、推荐系统等领域,奇异值分解都起着不可替代的作用。

随着大数据和人工智能技术的发展,奇异值分解的应用前景将会更加广阔,为实际问题的解决提供更多可能性。

使用奇异值分解进行矩阵压缩的方法探讨(五)

使用奇异值分解进行矩阵压缩的方法探讨(五)

奇异值分解(Singular Value Decomposition,SVD)是一种常用的矩阵分解方法,它在数据压缩和噪音过滤等领域有着广泛的应用。

在本文中,我将探讨使用奇异值分解进行矩阵压缩的方法,包括其原理、实现步骤以及应用场景。

奇异值分解是一种将一个矩阵分解为三个矩阵的方法,即将一个矩阵A分解为U、Σ和V的乘积,其中U和V是正交矩阵,Σ是对角矩阵。

在奇异值分解中,U和V代表了A的左奇异向量和右奇异向量,Σ则包含了A的奇异值。

奇异值分解的原理是将原始矩阵A映射到一个更低维的空间中,从而实现数据的压缩和降维。

实现奇异值分解的步骤主要包括以下几个步骤:首先,对原始矩阵A进行对称正交化处理,得到对称矩阵B。

然后,对矩阵B进行特征值分解,得到特征值和特征向量。

接下来,根据特征值和特征向量构建对角矩阵Σ和正交矩阵U和V。

最后,将U、Σ和V相乘,即可得到原始矩阵A的奇异值分解。

奇异值分解可以被广泛用于数据压缩和噪音过滤等领域。

在数据压缩方面,奇异值分解可以将原始矩阵A映射到一个更低维的空间中,从而实现对数据的压缩。

这种压缩方法在图像处理和语音识别等领域有着重要的应用,能够减小数据的存储空间和传输带宽。

另外,在噪音过滤方面,奇异值分解可以通过保留较大的奇异值,实现对数据中噪音的过滤,提高数据的质量和准确性。

除了数据压缩和噪音过滤,奇异值分解还可以应用于推荐系统和模式识别等领域。

在推荐系统中,奇异值分解可以通过对用户-物品评分矩阵进行分解,实现对用户的个性化推荐。

在模式识别中,奇异值分解可以通过对特征矩阵进行分解,实现对模式的识别和分类。

总之,奇异值分解是一种重要的矩阵分解方法,它在数据压缩、噪音过滤、推荐系统和模式识别等领域有着广泛的应用。

通过对奇异值分解的原理、实现步骤和应用场景进行探讨,可以更好地理解和应用这一方法,从而实现对数据的有效处理和利用。

利用奇异值分解进行数据压缩的最佳实践(Ⅰ)

利用奇异值分解进行数据压缩的最佳实践(Ⅰ)

在当今信息爆炸的时代,数据处理和存储成为了一个极其重要的问题。

在这个问题中,数据压缩技术成为了非常重要的一环。

随着数据量的不断增大,传统的压缩算法已经不能满足对数据处理和存储的需求。

奇异值分解(SVD)作为一种非常有效的压缩方法,被广泛应用于图像处理、音频处理和数据分析等领域。

在本文中,我们将探讨奇异值分解在数据压缩中的最佳实践。

奇异值分解是一种矩阵分解的方法,通过将一个矩阵分解成三个矩阵的乘积的形式,实现对原始矩阵的压缩。

具体来说,对于一个矩阵A,存在三个矩阵U、Σ和V,使得A=UΣV^T,其中Σ是一个对角矩阵,对角线上的元素称为奇异值。

通过保留奇异值较大的部分,我们可以对原始矩阵进行压缩,从而达到减少数据存储空间的目的。

首先,我们要明白奇异值分解的原理和基本步骤。

在进行奇异值分解时,我们首先需要对原始矩阵进行中心化处理,即将每一列的均值减去该列的均值,以消除数据的偏移影响。

然后,我们可以利用矩阵的特征值和特征向量来进行奇异值分解。

在实际计算中,我们可以利用数值计算方法来求解奇异值分解,比如使用SVD 算法来对矩阵进行分解。

在进行奇异值分解时,我们通常会对奇异值进行排序,并选择保留较大的奇异值,从而实现对数据的压缩。

其次,我们要探讨奇异值分解在数据压缩中的应用。

在图像处理领域,奇异值分解被广泛应用于图像压缩和去噪。

通过对图像矩阵进行奇异值分解,我们可以将图像的信息压缩成较小的矩阵,从而实现对图像的高效存储和传输。

在音频处理领域,奇异值分解也被用于音频压缩和降噪。

通过对音频信号进行奇异值分解,我们可以将音频数据进行压缩,从而实现对音频文件的高效存储和传输。

在数据分析领域,奇异值分解被广泛应用于降维和特征提取。

通过对数据矩阵进行奇异值分解,我们可以发现数据的主要特征,从而实现对数据的降维和压缩。

最后,我们要讨论奇异值分解在数据压缩中的最佳实践。

在进行奇异值分解时,我们需要考虑保留的奇异值个数。

通常情况下,我们可以根据奇异值的大小来选择保留的奇异值个数,从而实现对数据的高效压缩。

矩阵的奇异值分解与图像压缩-教案

矩阵的奇异值分解与图像压缩-教案

教案矩阵的奇异值分解与图像压缩-教案一、引言1.1矩阵奇异值分解的背景与意义1.1.1矩阵奇异值分解的数学起源1.1.2奇异值分解在数据分析和工程领域的应用1.1.3矩阵奇异值分解与图像压缩的关系1.1.4奇异值分解在图像处理中的重要性1.2图像压缩的基本概念1.2.1图像压缩的定义和目的1.2.2图像压缩的必要性1.2.3常见的图像压缩技术1.2.4图像压缩技术的发展趋势1.3教学目标与结构安排1.3.1教学目标:理解奇异值分解和图像压缩的原理1.3.2教学结构:由浅入深,理论结合实际1.3.3教学方法:案例教学和互动讨论1.3.4教学评估:课后练习和项目作业二、知识点讲解2.1矩阵奇异值分解的数学基础2.1.1矩阵的特征值和特征向量2.1.2奇异值分解的定义2.1.3奇异值的计算方法2.1.4奇异值分解的性质和应用2.2奇异值分解与图像表示2.2.1图像的矩阵表示2.2.2奇异值分解在图像表示中的应用2.2.3奇异值分解对图像特征的提取2.2.4奇异值分解在图像去噪中的应用2.3图像压缩的基本原理和方法2.3.1图像压缩的基本原理2.3.2无损压缩和有损压缩2.3.3常用的图像压缩算法2.3.4图像压缩的性能评估三、教学内容3.1矩阵奇异值分解的计算步骤3.1.1矩阵奇异值分解的算法流程3.1.2编程实现矩阵奇异值分解3.1.3奇异值分解算法的优化3.1.4奇异值分解在图像处理中的具体应用案例3.2奇异值分解在图像压缩中的应用3.2.1基于奇异值分解的图像压缩算法3.2.2奇异值分解在图像压缩中的优势3.2.3奇异值分解在图像压缩中的具体应用案例3.2.4奇异值分解在图像压缩中的未来发展3.3图像压缩技术的实际应用3.3.1图像压缩在数字通信中的应用3.3.2图像压缩在多媒体存储中的应用3.3.3图像压缩在遥感图像处理中的应用3.3.4图像压缩在医学图像处理中的应用四、教学目标4.1理论知识目标4.1.1掌握矩阵奇异值分解的基本原理4.1.2理解奇异值分解在图像压缩中的应用4.1.3学习图像压缩的基本概念和方法4.1.4了解图像压缩技术在现实生活中的应用4.2技能目标4.2.1能够使用编程工具实现矩阵奇异值分解4.2.2能够运用奇异值分解进行图像压缩4.2.3培养分析和解决图像压缩相关问题的能力4.2.4提高数据处理和算法优化的技能4.3思想与价值观目标4.3.1培养对数学和图像处理领域的好奇心和探索精神4.3.2强调团队合作在解决复杂问题中的重要性4.3.3增强对技术应用在现实世界中影响的认识4.3.4培养批判性思维和创新意识五、教学难点与重点5.1教学难点5.1.1矩阵奇异值分解的数学理论5.1.2奇异值分解算法的实现和优化5.1.3图像压缩算法的理解和应用5.1.4图像压缩性能的评估和改进5.2教学重点5.2.1矩阵奇异值分解的基本概念和计算方法5.2.2奇异值分解在图像表示和压缩中的应用5.2.3常见图像压缩算法的比较和分析5.2.4图像压缩技术的实际应用案例5.3教学策略5.3.1采用直观的图示和实例讲解复杂理论5.3.2通过编程实践加深对算法的理解5.3.3利用案例分析帮助学生掌握图像压缩的应用5.3.4设计小组讨论和项目作业以促进知识内化六、教具与学具准备6.1教师准备6.1.1教学PPT或幻灯片6.1.2图像处理软件和编程环境6.1.3相关教材和参考资料6.1.4实际图像压缩案例和数据集6.2学生准备6.2.1笔记本电脑或平板电脑6.2.2编程软件(如MATLAB、Python等)6.2.3相关数学和图像处理基础知识6.2.4对图像压缩技术的基本了解6.3教学环境准备6.3.1多媒体教室或在线教学平台6.3.2稳定的网络连接6.3.3投影仪和音响设备6.3.4白板或写字板七、教学过程7.1导入新课7.1.1引入图像压缩的实际问题7.1.2回顾矩阵奇异值分解的相关知识7.1.3提出本节课的学习目标和内容7.1.4激发学生对图像压缩技术的兴趣7.2知识讲解与演示7.2.1详细讲解矩阵奇异值分解的原理7.2.2演示奇异值分解在图像压缩中的应用7.2.3介绍图像压缩的基本方法和算法7.2.4分析图像压缩技术的优缺点7.3实践操作与讨论7.3.1学生分组进行编程实践7.3.2指导学生使用奇异值分解进行图像压缩7.3.3组织小组讨论和问题解答7.3.4分享和评价各组的实践成果7.4.2强调奇异值分解在图像压缩中的重要性7.4.3布置课后作业和项目任务7.4.4提供进一步学习和探索的建议八、板书设计8.1矩阵奇异值分解的原理8.1.1矩阵奇异值分解的定义8.1.2奇异值分解的计算步骤8.1.3奇异值分解的性质和应用8.2图像压缩的基本概念和方法8.2.1图像压缩的定义和目的8.2.2无损压缩和有损压缩8.2.3常用的图像压缩算法8.3奇异值分解在图像压缩中的应用8.3.1奇异值分解在图像表示中的应用8.3.2奇异值分解在图像压缩中的优势8.3.3奇异值分解在图像压缩中的具体应用案例九、作业设计9.1理论知识作业9.1.1解释矩阵奇异值分解的原理9.1.2比较无损压缩和有损压缩的优缺点9.1.3分析奇异值分解在图像压缩中的应用9.2编程实践作业9.2.1使用编程工具实现矩阵奇异值分解9.2.2运用奇异值分解进行图像压缩9.2.3分析和评估图像压缩的性能9.3案例分析和小组讨论9.3.1分析一个实际图像压缩案例9.3.2小组讨论奇异值分解在图像压缩中的未来发展9.3.3提出改进图像压缩算法的建议十、课后反思及拓展延伸10.1教学反思10.1.1学生对矩阵奇异值分解的理解程度10.1.2教学方法和教学内容的适用性10.1.3教学难点的解决情况10.2拓展延伸10.2.1探索奇异值分解在其他领域的应用10.2.2研究最新的图像压缩技术和算法10.2.3阅读相关的学术论文和资料重点关注环节的补充和说明:1.矩阵奇异值分解的原理:这是本节课的理论基础,需要通过图示和实例讲解来加深学生的理解。

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

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

矩阵的奇异值分解在图像压缩中应用作者:李顺利姚廷富余萍李丹来源:《电脑知识与技术》2022年第19期摘要:随着大数据技术的飞速发展,矩阵分解特别是矩阵的奇异值分解(SVD)在数据检索、图像压缩、人脸识别、神经网络等领域有着广泛应用。

针对图像压缩问题,首先给出了矩阵奇异值分解的基本理论,指出了矩阵奇异值的存在和唯一性,同时分析了矩阵奇异值分解的一般方法并用Matlab加以实现;然后论述了矩阵奇异值分解用于图像压缩的基本原理,最后用数值实验展示理论方法的有效性。

关键词:矩阵分解;图像压缩;低秩逼近中图分类号:TP18 文献标识码:A文章编号:1009-3044(2022)19-0001-021 奇异值分解的基本理论矩阵的奇异值分解(Singular Value Decomposition,简称SVD),在数值计算中是一种重要的矩阵分解,在最优解问题、扰动问题[1]、最小二乘问题、广义逆问题以及图像处理[2]等问题中都有着重要应用。

1.1 奇异值分解的概念定义1.1[3] 设实矩阵[A∈Rm×n](或复矩阵[A∈Cm×n]),半正定矩阵[ATA](当[A]为复矩阵时为[A∗A],[A∗]为[A]的共轭转置)的特征值为[λ1≥λ2≥…λr>λr+1=…λn=0],则称特征值的算术平方根,即[σi=λii=1,2,…,n]为[A]的奇异值,记作[σ1≥σ2≥…≥σr>σr+1=…=σn=0],矩阵[A]的全部奇异值组成的集合为[σ(A)]:[σ(A)={σ≥0:ATAx=σ2x,x∈Rn,x≠0}].特别地,当[A]为零矩阵时,它的奇异值为[0].定理1.2[4] 设实矩阵[A∈Rm×n](或复矩阵[A∈Cm×n]),则[A]的奇异值是唯一确定的,并且一定存在正交矩阵(或酉矩阵)[U=[u1,u2…um]∈Rm×m](或[U∈Cm×m])和正交矩阵(或酉矩阵)[V=[v1,v2,…vn]∈Rm×m](或[V∈Cn×n]),使得[A]满足:[Am×n=Um×mDm×nVTn×n],(1)其中[D=D000],且[D=diagσ1,σ2,…,σr,] [σi(i=1,2…r)]為矩阵[A]的全部非零奇异值,称该分解方法为矩阵的奇异值分解,[uj(j=1,2…m)]为矩阵[A]的左奇异向量,[vi(i=1,2…n)]为矩阵[A]的右奇异向量。

奇异值分解在图像处理中的实际案例分析(Ⅰ)

奇异值分解在图像处理中的实际案例分析(Ⅰ)

奇异值分解在图像处理中的实际案例分析奇异值分解(Singular Value Decomposition,SVD)是一种十分重要的矩阵分解方法,在图像处理中有着广泛的应用。

它可以将一个矩阵分解成三个矩阵的乘积,可以用于降维、去噪、压缩等操作。

本文将通过具体的实际案例分析,来探讨奇异值分解在图像处理中的应用。

案例一:图像压缩在图像处理中,经常需要对图像进行压缩以减少存储空间和加快传输速度。

奇异值分解可以帮助我们实现图像的压缩。

具体来说,对于一幅图像,我们可以将其表示为一个矩阵,然后对这个矩阵进行奇异值分解。

通过保留较大的奇异值和对应的奇异向量,可以近似地重建原始图像,实现图像的压缩。

通过调整保留的奇异值数量,可以灵活地控制图像的压缩比例。

案例二:图像去噪在图像处理中,常常会遇到图像受到噪声干扰的情况。

奇异值分解可以帮助我们去除图像中的噪声。

具体来说,我们可以将受到噪声干扰的图像表示为一个矩阵,然后对这个矩阵进行奇异值分解。

通过保留较大的奇异值和对应的奇异向量,可以恢复出原始图像,同时抑制噪声的影响,实现图像的去噪效果。

案例三:图像特征提取在图像处理中,常常需要从图像中提取出有用的特征信息。

奇异值分解可以帮助我们实现图像的特征提取。

具体来说,对于一幅图像,我们可以将其表示为一个矩阵,然后对这个矩阵进行奇异值分解。

通过分析奇异值和对应的奇异向量,可以提取出图像中的主要特征信息,如边缘、纹理等,从而实现图像的特征提取。

通过以上三个实际案例的分析,我们可以看到奇异值分解在图像处理中的重要作用。

它不仅可以帮助我们实现图像的压缩、去噪、特征提取等操作,还可以为图像处理提供更多的可能性。

当然,奇异值分解也有一些局限性,如计算复杂度较高、对大规模数据的处理效率不高等问题,但随着计算机技术的发展,这些问题也在不断得到解决。

总之,奇异值分解在图像处理中有着广泛的应用前景,它为图像处理提供了一种全新的思路和方法。

相信随着技术的不断进步,奇异值分解在图像处理领域的作用会变得越来越重要,为图像处理带来更多的创新和发展。

奇异值分解在信号处理中的实际案例分析(Ⅲ)

奇异值分解在信号处理中的实际案例分析(Ⅲ)

奇异值分解(Singular Value Decomposition,SVD)是一种重要的矩阵分解方法,广泛应用于信号处理、图像处理、推荐系统等领域。

它的基本思想是将一个矩阵分解为三个矩阵的乘积,其中一个是正交矩阵,一个是对角矩阵,另一个是另一个正交矩阵的转置。

SVD可以将矩阵的信息进行降维,并提取出矩阵中的重要特征,因此在信号处理中有着重要的应用价值。

一、图像压缩SVD在图像压缩中有着广泛的应用。

通过对图像的SVD分解,可以将图像转换为一组基础图像和对应的权重,从而实现对图像的压缩。

这种方法可以在一定程度上保留图像的主要特征,减小图像的存储空间。

例如,当我们需要在网页上展示大量图片时,可以利用SVD对图片进行压缩,从而减小网页的加载时间。

二、语音信号处理在语音信号处理中,SVD可以用于降噪和语音识别。

通过对声音信号的SVD 分解,可以将声音信号分解为一组基础模式,从而更好地提取声音信号的特征。

这对于语音识别来说非常重要,因为它可以帮助识别出不同的语音特征,从而提高识别的准确性。

同时,SVD还可以用于去除声音信号中的噪音,提高信号的清晰度和质量。

三、推荐系统在推荐系统中,SVD可以用于对用户-物品评分矩阵进行分解,从而提取出用户和物品的潜在特征。

这些潜在特征可以用于对用户进行个性化推荐,提高推荐系统的准确性和效果。

例如,在电商平台上,我们可以利用SVD对用户购买行为进行分析,从而向用户推荐更符合其兴趣的商品,提高用户的购物体验。

四、医学图像处理在医学图像处理中,SVD可以用于对医学图像进行处理和分析。

通过对医学图像的SVD分解,可以提取出医学图像的主要特征和结构信息,帮助医生对图像进行诊断和分析。

同时,SVD还可以用于医学图像的压缩和存储,减小图像的存储空间,方便医生进行图像的传输和共享。

总结起来,奇异值分解在信号处理中有着广泛的实际应用。

无论是在图像处理、语音处理、推荐系统还是医学图像处理中,SVD都可以帮助我们提取出信号的重要特征,实现信号的降维和压缩,从而提高处理的效率和准确性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于奇异值分解的图像压缩及实现
本文利用奇异值分解方法,来对图片进行压缩,过程中我们
利用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<r )近似表示图像A ,即取:
(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阶,以
及U 左奇异值矩阵为512*512阶,V 右奇异值矩阵为512*512阶。

将S 对角化后,显示的奇异值见图1:
0100200300400500600
1
2
3
4
5
6
7
4
图1.奇异值分布图
然后利用分解后的矩阵重构原矩阵A ,并进行数据格式转换,设置压缩数k ,分别令k=40、80、120、160、200五个数据,利用svds 函数将选择k 之后的新矩阵进行A 的重构,即运用U*S*V ’进行重构,其中S 为40*40的对角矩阵,U 为512*40的左奇异值矩阵,V 为512*40的右奇异值矩阵,重构时需将重构的矩阵进行字型转换为uint8类,将重构后的矩阵放置在outfile 中,最后显示重构后的图像。

Matlab 实现代码见附录1.
(1)图片压缩流程如图2所示:
图2.图像压缩程序流程 图3.图像解压流程 (2)图像重构流程图见图3. 三.实验结论
由式(5)、(6)可知,如果从分解后的对角矩阵中选择k 个大奇异值以及这些奇异值相对应的左右奇异向量逼近原图像,便可以使用k (n+1)个数值代替原来的n*n 个图像数据,显然要到达图像压缩的效果,就一定要求k (n+1)<2n ,在发送图像时,只需要k (n+1)个有关奇异值和奇异值向量的数据即可,接收到数据时就利用这些数据进行重构出原图像。

k 值越小,需要保存的数据就越少,k 月接近n ,重构出来的
图像就越和源图像相似。

所以在图像压缩时,只要选择合适的奇异值个数,解压缩后的图像就可以满足视觉要求,一般情况下,对于256≤n≤2048的图像,选取25≤k≤100时,都有较满意的视觉效果。

实验结果图如图4所示,其中a代表原图,b为k=40时的效果图,c、d、e、f分别为k=80、120、160、200时的效果图:
(a)(b)
(c) (d)
(e) (f) 附录1
>> infile='D:\lena.bmp';
>> outfile='lena2.bmp';
>> A=imread(infile);
>> A=double(A);
>> [U,S,V]=svd(A);
>> S=diag(S);
>> plot(S)
>> k=40;
>> [U,S,V]=svds(A,k);
>> im=uint8(U*S*V');
>> imwrite(im,outfile);
>> imshow(im)
>> k=80;
>> [U,S,V]=svds(A,k);
>> im=uint8(U*S*V'); >> imwrite(im,outfile); >> imshow(im)
>> k=120;
>> [U,S,V]=svds(A,k); >> im=uint8(U*S*V'); >> imwrite(im,outfile); >> imshow(im)
>> k=160;
>> [U,S,V]=svds(A,k); >> im=uint8(U*S*V'); >> imwrite(im,outfile); >> imshow(im)
>> k=200;
>> [U,S,V]=svds(A,k); >> im=uint8(U*S*V'); >> imwrite(im,outfile); >> imshow(im)。

相关文档
最新文档