主成分分析法在图像压缩和重建中的应用研究-含Matlab代码

news2025/1/15 20:56:23

目录

  • 一、引言
  • 二、主成分分析法概念及性质
    • 2.1 概念
    • 2.2 性质
  • 三、计算步骤
    • 3.1 计算相关系数矩阵
    • 3.2 计算特征值与特征向量
    • 3.3 计算主成分贡献率及累计贡献率
    • 3.4 计算主成分载荷
    • 3.5 各主成分的得分
  • 四、图像压缩与重建实验分析
  • 五、参考文献
  • 六、Matlab代码获取

一、引言

主成分分析法是用降维的思想,用几个互不相关的主成分反映原始变量的大部分信息的统计方法。能有效降低数据维度,减少计算量,在涉及到数理统计的各个领域均有广泛的应用。本文先介绍主成分分析的原理,再通过 matlab 用主成分分析法对图像进行压缩,实现主成分在图像处理中的应用。

二、主成分分析法概念及性质

2.1 概念

假定有n个样本,每个样本由p个变量构成,则可以组成一个 n×p 阶的数据矩阵:

在这里插入图片描述

设 x1,x2,…,xP 为原变量,z1,z2,…,zm(m≤p)为新变量,则:

在这里插入图片描述
系数 在这里插入图片描述为新变量对原变量的反应情况。

2.2 性质

zi 与zk(i≠k;i,k=1,2,…,m;j=1,2,…,p)相互无关;z1 是 x1,x2,…,xP 的一切线性组合中方差最大者,z2是与 z1 不相关的 x1,x2,…,xP 的所有线性组合中方差最大者;zm 是与 z1,z2,……,zm-1都不相关的 x1,x2,…xP 的所有线性组合中方差最大者。则新变量指标 z1,z2,…,zm 分别称为原变量指标 x1,x2,…,xP 的第1,第 2,…,第 m 主成分。

通过以上表述可知,主成分分析的实质是计算主成分 zi(i=1,2,…,m)所反映的原变量 xj(j=1,2,…,p)上的荷载 lij(i=1,2,…,m;j=1,2,…,p)。它们分别是相关矩阵(也就是 x1,x2,…,xP 的相关系数矩阵)m 个较大的特征值所对应的特征向量。

三、计算步骤

3.1 计算相关系数矩阵

相关系数矩阵为:

在这里插入图片描述

rij(i,j=1,2,…,p)为原变量xi与xj标准化后的相关系数,rij=rji,其计算公式为:

在这里插入图片描述

3.2 计算特征值与特征向量

解特征方程|λI-R|=0,求出特征值,并使其按大小顺序排列 λ1≥λ2≥…≥λp≥0;分别求出对应于特征值 λi 的特征向量 ei(i=1,2,…,p),要求‖ei‖=1,即在这里插入图片描述 ,其中,eij 表示向量 ei 的第 j 个分量,也就是说 ei 为单位向量。

3.3 计算主成分贡献率及累计贡献率

主成分贡献率为:

在这里插入图片描述

主成分累计贡献率为:

在这里插入图片描述
一般取累计贡献率达 85%~95%的特征值 λ1,λ2,…,λm 所对应的第 1、第 2、…、第 m(m≤p)个主成分。

3.4 计算主成分载荷

在这里插入图片描述,主成分载荷就是zi与xj之间的相关系数(主成分不相关)。

3.5 各主成分的得分

各主成分的得分为:

在这里插入图片描述

在这里插入图片描述

四、图像压缩与重建实验分析

众所周知,图像信息所含的数据量巨大。为了便于图像的存储,提高存储效率,研究图像压缩具有重要的意义。图像压缩的目的是减少数据存储量,便于存储和传输。黑白图像每个像素点由不同的灰度值来表示,相邻灰度值之间具有一定相关性,这为采用主成分分析法去研究图像相关性提供了一定可实践的条件。因此,我们将图像分割成很多子块,将子块作为样本,假设图像数组大小为 128×288,子块大小为 8×4,I 可以划分成(128/8)×(288/4)=1152 个子块,每个样本包含 8×4=32 个元素。将 1152个样本按列组装成 1152×32 的矩阵,每行对应一个子块,每列对应不同子块同一位置的像素。由于像素之间具有相关性,1152×32 矩阵列与列间也存在相关性,因此能用主成分分析实现降维,进而实现图像压缩。

通过 matlab 编程,设置主成分个数为1,14,27,40来观测不同主成分个数对图像压缩与重构效果,如图1所示。

在这里插入图片描述

图1 不同主成分参数下的图像压缩与重构效果

由试验结果得知,主成分个数越多,压缩效果越差,但是图像信息损失相应的也减少。我们可以根据实际需求设置主成分个数,实现不同的压缩效果。

五、参考文献

[1]曲双红,李华,李刚.基于主成分分析的几种常用改进方法[J].统计与决策,2011(05):155-156.
[2]亓文永,叶心太.应用于图像特征识别的主成分分析算法[J].科技信息(科学教研),2008(22):19,30.
[3]刘涛,杨风暴.主成分分析在图像压缩中的应用[J].哈尔滨师范大学自然科学学报,2008(04):69-72.
[4]陈洁文,陈勇,林海明.主成分分析应用中应注意的问题[J].统计与决策,2009(08):140-141.

六、Matlab代码获取

上述Matlab代码,可私信博主获取。


博主简介:研究方向涉及智能图像处理、深度学习等领域,先后发表过多篇SCI论文,在科研方面经验丰富。任何与算法程序科研方面的问题,均可私信交流讨论


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/10486.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【附源码】Python计算机毕业设计网上购物平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

最火后台管理系统 RuoYi 项目探秘,之二

上篇中,我们初步观察了 RuoYi 的项目结构,并在最后实际运行起了项目。我们也发现了作者不好的代码习惯,作为反例,我们应该要养成良好的编码习惯。本篇开始,我们会按照 Web 界面逐一对具体子项目的实现的功能进行探秘。…

Qt使用7z压缩和解压示例(支持文件夹递归、多文件不同位置)

1,简介 Qt自带的压缩处理类功能不太完善,也不支持中文路径。 这是我封装好的一个Qt调用7z处理压缩解压的工具类 ZipAPI,提供了几个简单易用的接口。 写压缩解压代码从此非常方便快捷! 支持中文路径,支持常规的压缩解…

Cell:水平基因转移在昆虫中广泛存在,增强鳞翅目雄性昆虫求偶行为

期刊:Cell 影响因子:66.85 发表时间:2022年8月 一、研究背景 昆虫起源于约4.8亿年前,是地球上最繁盛的动物类群,已被描述种超过100万,占所有动物物种50%以上。这个古老的动物类群在…

插画、插图网站,免费(商用)

本期分享5个高质量插画网站,免费可商用,设计必备,建议收藏!1、Undraw https://undraw.co/illustrationsUndraw是一个扁平风格插画图库,里面有大量的插画,可以支持在线更改配色,网站提供免费下载…

【JavaSE】类和对象(下)(访问限定符 包的概念 导入包中的类 自定义包 包的访问权限控制举例 常见的包 实例内部类 静态内部类 局部内部类 对象的打印)

文章目录六、 封装6.1 封装的概念6.2 访问限定符6.3 封装扩展之包6.3.1 包的概念6.3.2 导入包中的类6.3.3 自定义包6.3.4 包的访问权限控制举例6.3.5 常见的包七、内部类7.1 内部类7.1.1 实例内部类7.1.2 静态内部类7.2 局部内部类7.3 匿名内部类八、对象的打印六、 封装 6.1 …

人工智能-线性回归2--房价预测、欠拟合过拟合、正则化、模型保存加载

7,案例:波士顿房价预测 回归性能评估MSE from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression,SGDRegressor from sklearn.meyrics import mean_squa…

详解PHP解决swoole守护进程Redis假死 ,mysql断线重连问题

详解PHP解决swoole守护进程Redis假死 ,mysql断线重连问题最近公司有个项目,要举办一个线上活动,我这边负责提供接口记录用户访问记录,与操作记录,由于活动参与人数可能比较多,为了不影响正常业务运行&#…

安全性归约(游戏)

文章目录基于游戏的安全性定义归约中的概率关系某事件发生某事件不发生互斥事件基于游戏的安全性定义 在将攻击 Γ\GammaΓ 的算法 A′AA′ 归约到攻击 Π\PiΠ 的算法 AAA 时, 让 A′AA′ 根据 ChΓCh_\GammaChΓ​ 提供的信息,为 AAA 模拟出同分布的 …

股票自动下单接口够接入多种股票数据源吗?

很多的股票交易接口在原先只能接入行情的CTP程序,那么股票自动下单接口现在可以通过openctp提供的CTPAPI,可以接入到多种多样的股票数据源!但是目前由于大多的股票交易接口是受到监管限制的就很难接入实盘,那么股票自动下单接口通…

知心世界姐王瑞平:谷传民与大衣哥朱之文是沟通问题不是人品问题

大衣哥和谷传民的官司走到现在,互联网上面也出现了两大阵营对垒,一方面是大衣哥的粉丝,旗帜鲜明地支持自己的偶像,另一大阵营的人,则一心一意支持谷传民。虽然每个阵营都有自己的道理,但是毕竟都太过极端&a…

Virtual Data Augmentation: 虚拟数据扩增技术

听说过数据扩增(Data Augmentation),也听说过虚拟对抗训练(Virtual Adversarial Traning),但是我没想到会有人将其结合,谓之虚拟数据扩增(Virtual Data Augmentation)。这…

CANoe诊断测试

诊断协议那些事儿 本文为诊断协议那些事儿专栏文章,当我们在开发工程中越来越多的需要使用到总线测试工具,其中包括BUSMASTER、周立功、PCAN、CANOE等,本文将使用德国Vector公司的CANoe介绍诊断测试的基本环境。 文章目录诊断协议那些事儿一…

Python编程从入门到实践 第五章:if语句 练习答案记录

Python编程从入门到实践 第五章:if语句 练习答案记录 练习题导航Python编程从入门到实践 第五章:if语句 练习答案记录5.1 一个简单示例5.2 条件测试5.2.1 检查是否相等5.2.2 检查是否相等时忽略大小写5.2.3 检查是否不相等5.2.4 数值比较5.2.5 检查多个文…

运行yolov5 v6遇到的问题

1. Arial.ttf无法在运行时下载的问题 可以选择用浏览器下载,然后拷贝到docker或者ubuntu下,创建服务器的http访问方式。 具体为: 1.1 下载文件 Arial.ttf 并拷贝到docker或者ubuntu下 1.2 在ubuntu下创建http访问方式: # 安装…

有限元仿真分析误差来源之边界条件,约束和point mass

导读:前不久,我在这里分享了一篇《有限元仿真分析误差来源之材料参数设置,小心为妙》的文章,引发了同行们的关注和讨论。在此感谢仿真秀平台讲师们的批评和指正,一起认真交流技术和进步。今天我将继续带来关于边界条件…

spring data jpa在mysql分页中的实例(一次访问同时获取数据和总数)

一、原生sql语句 mysql中语句如下 select SQL_CALC_FOUND_ROWS sn,max(count) as active_count from sn_state_changed where sn_year zz group by sn limit 0,10; select FOUND_ROWS() as total; 解释: SQL_CALC_FOUND_ROWS 供后面的查询总数sql语句使…

(STM32)从零开始的RT-Thread之旅--SPI驱动ST7735(1)

上一篇: (STM32)从零开始的RT-Thread之旅--GPIO 我使用的开发板是WeAct的H743板子,板子带一个0.96的SPI驱动的LCD,给的有现成的测试用例,看源码应该是ST的工程师写的ST7735的驱动,打算把这个驱动直接拿到RTT工程里面使…

SolidWorks 入门笔记01:草图绘制

全文目录简介1. 草图的创建1.1 在基准面上新建一个二维草图多学一招:退出草图绘制模式,快捷键切换视图1.2 从已有的草图派生新的草图。1.3 在零件的平面上绘制草图多学一招:SolidWorks 中鼠标滚轮放大缩小功能反的解决办法 。2. 基本图形绘制…

【2022秋线上作业-第5次-第11-13周】判断题

1-1 一棵有124个结点的完全二叉树,其叶结点个数是确定的。T 解析: 一棵124个叶节点的完全二叉树,假设n0为叶子节点数,n1为度为1结点数,n2为度为2结点数,则有总结点数为n0n1n2;而n2n0-1123&#…