当前位置: 首页 > news >正文

【图像处理基石】PCA图像压缩与还原:基于OpenCV的Lena图实验

在这里插入图片描述

算法原理介绍

PCA(主成分分析)是一种常用的降维技术,其核心思想是通过线性变换将高维数据映射到低维空间,同时保留数据中最主要的信息。在图像压缩中,PCA的工作原理如下:

  1. 数据表示:将图像视为像素值矩阵,对于灰度图可表示为二维矩阵,彩色图则为三维张量
  2. 中心化:对图像数据进行中心化处理(减去均值)
  3. 协方差矩阵:计算数据的协方差矩阵,反映像素间的相关性
  4. 特征值分解:对协方差矩阵进行特征值分解,得到特征值和特征向量
  5. 主成分选择:选择特征值最大的前k个特征向量作为主成分
  6. 降维映射:将原始数据投影到选定的主成分上,得到低维表示(压缩)
  7. 重构还原:使用低维表示和主成分重构原始数据(还原)

压缩率取决于选择的主成分数量k,k越小压缩率越高,但图像质量可能下降。

代码实现与解释

下面是使用PCA对Lena图像进行压缩与还原的完整代码:

import cv2
import numpy as np
import matplotlib.pyplot as pltdef pca_compress(image, k):"""使用PCA压缩图像:param image: 输入灰度图像 (H, W):param k: 保留的主成分数量:return: 压缩后的图像、投影矩阵、均值"""# 获取图像尺寸h, w = image.shape# 将图像转换为浮点型并展平image_flat = image.astype(np.float32).reshape(h, w)# 计算均值并中心化mean = np.mean(image_flat, axis=0)image_centered = image_flat - mean# 计算协方差矩阵cov_matrix = np.cov(image_centered, rowvar=False)# 计算特征值和特征向量eigenvalues, eigenvectors = np.linalg.eigh(cov_matrix)# 按特征值降序排序sorted_indices = np.argsort(eigenvalues)[::-1]sorted_eigenvectors = eigenvectors[:, sorted_indices]
http://www.lryc.cn/news/617462.html

相关文章:

  • 2025 算法面试试题-阿里面试题分析
  • 【算法专题训练】11、字符串中的变位词
  • PyTorch基础(使用Tensor及Antograd实现机器学习)
  • GraalVM !拥抱云原生的 JVM
  • foreach 块并行加速
  • docker compose和docker-compose命令的区别
  • 力扣164:最大间距
  • 大数据系统架构模式:驾驭海量数据的工程范式
  • React(四):事件总线、setState的细节、PureComponent、ref
  • LeetCode 2438.二的幂数组中查询范围内的乘积:模拟(前缀和可选)
  • C++项目实战(日期类的实现)
  • MFC C++ 使用ODBC方式调用Oracle数据库的详细步骤
  • 重学React(五):脱围机制一
  • 金蝶云星辰:赋能企业数据管理
  • spring boot 整合redis教程
  • 带简易后台管理的米表系统 域名出售系统 自适应页面
  • 帝国理工学院团队研发:Missense3D-PTMdb—— 解析遗传变异与翻译后修饰的交互式工具
  • 计算机网络---交换机
  • 套接字技术、视频加载技术、断点续传技术
  • Horse3D引擎研发笔记(四):在QtOpenGL下仿three.js,封装EBO绘制四边形
  • 2025 年国内可用 Docker 镜像加速器地址
  • Rust面试题及详细答案120道(19-26)-- 所有权与借用
  • 《基于Pytorch实现的声音分类 :网页解读》
  • YOLOv8 训练报错:PyTorch 2.6+ 模型加载兼容性问题解决
  • 【JavaEE】(12) 创建一个 Sring Boot 项目
  • 第二届机电一体化、机器人与控制系统国际会议(MRCS 2025)
  • 34-Hive SQL DML语法之查询数据-3
  • 2025世界机器人大会,多形态机器人开启商业化落地浪潮
  • [4.2-2] NCCL新版本的register如何实现的?
  • GAI 与 Tesla 机器人的具体联动机制