奇异值分解(SVD):从理论到图像压缩实战
创作时间:
作者:
@小白创作中心
奇异值分解(SVD):从理论到图像压缩实战
引用
51CTO
1.
https://blog.51cto.com/deephub/10784375
奇异值分解(SVD)是一种强大的线性代数技术,广泛应用于数据科学领域,特别是在图像压缩方面。本文将从数学原理出发,深入浅出地讲解SVD的工作机制,并通过Python代码演示如何使用SVD进行图像压缩。
奇异值分解的基本概念
奇异值分解(Singular Value Decomposition,简称SVD)可以将任意形状的矩阵分解成三个部分的乘积:U、S、V。原矩阵A可以表示为:
其中,A矩阵中的奇异值就是\Sigma矩阵中的对角线元素,它们是矩阵A的特征值的平方根,表示A矩阵在各个主方向上的拉伸程度。U矩阵是AAT的特征向量构成的正交矩阵,表示数据集在降维后的新的坐标系中的投影。V矩阵是ATA的特征向量构成的正交矩阵,表示每个数据点在降维后的新坐标系中的坐标。
数学原理
假设我们有一个矩阵A:
要计算 SVD,首先需要通过找到 AA^{T} 的特征值来计算奇异值。具体步骤如下:
- 计算矩阵 AA^{T} 的特征值和特征向量
- 计算矩阵 A^{T}A 的特征值和特征向量
- 将特征值的平方根作为奇异值
- 构建 U、S、V 三个矩阵
以一个具体的例子来说明:
通过计算得到:
最终得到SVD分解:
图像压缩实战
接下来,我们将使用Python代码演示如何使用SVD进行图像压缩。实验所用的图像如下:
导入库和读取图片
import requests
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('flower.bmp')
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray_image = gray_image.astype(np.float64)
执行奇异值分解
U, s, V = np.linalg.svd(gray_image, full_matrices=False)
可视化奇异值
top_10_singular_values = s[:10]
plt.plot(range(1, len(s) + 1), s, 'r-')
plt.xlabel("Rankings")
plt.ylabel("Singular Values")
plt.title("Singular Values versus their Rankings")
plt.savefig("Singular_values_vs_rankings.png")
plt.show()
从图中可以看出,图像的大部分信息都集中在前几个奇异值中:
重建和显示图像
k_values = [10, 50, 100]
plt.figure(figsize=(12,6))
for i in range(len(k_values)):
low_rank = U[:, :k_values[i]] @ np.diag(s[:k_values[i]]) @ V[:k_values[i], :]
plt.subplot(2,3,i+1),
plt.imshow(low_rank, cmap='gray'),
plt.title(f"For K value = {k_values[i]}")
plt.savefig("Reconstruction_with_k_values.png")
从重建的图像中可以看出,随着K值的增加,图像的清晰度逐渐提高:
总结
通过本文,我们了解了奇异值分解(SVD)的基本原理及其在图像压缩中的应用。SVD不仅是一种强大的数学工具,更是一个实用的数据处理方法,广泛应用于数据降维、图像压缩等领域。希望本文能帮助读者更好地理解这一重要概念。
热门推荐
铜钹山徒步攻略:避暑胜地九仙湖
江西铜钹山:守护黑麂与云豹的家园
无锡去厦门自由行攻略:路线、费用及最新注意事项
优化购票规则,点亮春运回家路
电影《第十一回》:人生如戏,请君入席
上海三大免费摄影圣地:外滩、陆家嘴、衡山路的绝美机位攻略
从早到晚玩转魔都:外滩+南京路步行街免费景点一日游攻略
上海最美秋色:共青森林公园&青西郊野公园
见家长应该先见哪一方好
家庭光伏系统的优点
NC:地幔风通过克拉通根部驱动新生代印度-亚洲板块碰撞
NC:地幔风通过克拉通根部驱动新生代印度-亚洲板块碰撞
研究揭示印度-欧亚大陆初始碰撞时间约为6000万年前
摩托车过户费用大揭秘:490元还是200-500元?
摩托车过户费用大揭秘:200元真的够吗?
舌尖麻是什么原因引起的,怎么解决
舌炎吃什么药好得快 舌头麻痛
糖醋蓑衣黄瓜(也叫蛇皮黄瓜,附切法说明)
掌握“角度”和“位置”,拓展摄影表现的广度
打工人失业后,为什么不敢断缴社保?
秋冬补气血,这些人参、黄芪、当归你用对了吗?
当归泡水喝,真的能补气血吗?
新研究发现青藏高原仍在生长,又向东扩展了300公里
青岛人喜爱吃鲅鱼 给丈人送春鲅鱼 还有个美丽的传说
马鲛鱼的做法及营养
车管所教你如何快速搞定摩托车过户!
摩托车过户全攻略:从准备材料到完成上牌
摩托车过户全攻略:从准备材料到完成过户的详细指南
环保又时尚:新娘手捧花新潮流
婚礼手捧花保存小妙招,留住美好瞬间