《机器学习》—— SVD奇异值分解方法对图像进行压缩
创作时间:
作者:
@小白创作中心
《机器学习》—— SVD奇异值分解方法对图像进行压缩
引用
CSDN
1.
https://blog.csdn.net/weixin_73504499/article/details/141969969
SVD(奇异值分解)是一种在信号处理、统计学、线性代数、机器学习等多个领域广泛应用的矩阵分解方法。它将任何 m×n 矩阵 A 分解为三个特定矩阵的乘积:
其中:
- U是一个 m×m 的正交矩阵(或 m×min(m,n),取决于是否计算完整矩阵),其列被称为左奇异向量。
- Σ是一个 m×n 的矩形对角矩阵(但通常以 m×min(m,n) 的形式出现,并且只在对角线上有值,其余位置为0),对角线上的元素称为奇异值,它们是非负的,并按降序排列。在实际应用中,Σ 经常以一维数组的形式返回,仅包含对角线上的奇异值。
- V^T是 V 的转置,V 是一个 n×n 的正交矩阵(或 n×min(m,n)),其列被称为右奇异向量。
SVD的一些重要性质和用途
- 信息压缩:由于奇异值是按降序排列的,因此可以通过只保留最大的几个奇异值及其对应的左右奇异向量来近似原始矩阵,从而实现数据的压缩。这种方法在图像压缩、信号处理等领域非常有用。
- 噪声过滤:SVD 可以用于过滤噪声,特别是当噪声主要影响较小的奇异值时。通过去除或减小这些较小的奇异值,可以去除或减轻噪声的影响。
- 主成分分析(PCA):在统计学中,PCA 可以通过 SVD 来实现。PCA 旨在找到数据中的主成分,这些成分解释了数据中的最大方差。SVD 的左奇异向量对应于 PCA 的主成分方向。
- 求解线性方程组:SVD 可以用于求解线性方程组 Ax=b,特别是当 A 是非方阵或奇异矩阵时。
- 推荐系统:在推荐系统中,SVD 可以用于矩阵补全,即根据部分已知的评分来预测用户对物品的评分。
使用Python实现SVD图像压缩
在Python的NumPy库中,np.linalg.svd()
函数用于计算矩阵的SVD。它返回三个对象:左奇异向量U、奇异值数组σ(注意这里返回的是一维数组,而不是完整的对角矩阵Σ)和右奇异向量的转置V^T(在NumPy中通常直接返回V,因为V^T可以通过V.T(转置)获得)。
下面的代码展示了如何使用SVD对一张灰度图像进行压缩:
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
def pic_compress(k, pic_array):
global u, sigma, vt, sig, new_pic
u, sigma, vt = np.linalg.svd(pic_array) # 进行奇异值分解
sig = np.eye(k) * sigma[: k] # np.eye 用于生成一个单位对角矩阵
# np.dot 用于矩阵的乘法运算 (计算:A=UΣV^T ——> 压缩后的图片矩阵)
new_pic = np.dot(np.dot(u[:, :k], sig), vt[:k, :])
size = u.shape[0] * k + sig.shape[0] * sig.shape[1] + k * vt.shape[1] # 计算压缩后的图片大小
return new_pic, size
# 读取图片
img = Image.open('lf.jpg')
ori_img = np.array(img) # 将图片转换成符合 np.linalg.svd() 参数要求的array矩阵格式
# 调用奇异值分解函数
new_img, size = pic_compress(100, ori_img) # 压缩的维度为100 可设定不同的值查看不同效果
# 分别打印出图片压缩前后的大小
print("original size:" + str(ori_img.shape[0] * ori_img.shape[1]))
print("compress size:" + str(size))
# 创建画布,在同一张画布中显示压缩前后的两张图片
fig, ax = plt.subplots(1, 2)
ax[0].imshow(ori_img, cmap='gray')
ax[0].set_title("before compress")
ax[1].imshow(new_img, cmap='gray')
ax[1].set_title("after compress")
plt.show()
由结果可以看出,图片的大小大约被压缩至原大小的60%,但是图片所呈现出来的效果没有太大的变化。
热门推荐
万圣节后遗症:孩子们的糖果大战
智能机器人进军校园:东北大学Marlo开启教育服务新篇
银行转账、支付宝都能用:股票账户充值全攻略
股票投资入门指南:从基础概念到实战技巧全解析
医生建议:诺如病毒感染后应选择清淡饮食
《孤勇者》获腾讯音乐娱乐盛典年度金曲:一首歌如何成为时代精神的注脚
陈奕迅《孤勇者》:英雄联盟的平凡英雄赞歌
企业收入分配差距:如何平衡激励与公平?
绩效分配方案如何影响员工心理健康?
成都咨询公司揭秘:绩效分配的心理学奥秘
绩效分配方案的实际效果:问题与改进
三年级科学实验大挑战:谁是最强小小科学家?
如何让孩子爱上提问:三年级健康教育的实践指南
怎么高情商回复前男友的关心
失恋又怎样?19个方法教你如何走出分手
阎立本《步辇图》:展现唐蕃和亲的宫廷艺术珍品
专家:校园霸凌需多方共治,这些征兆家长要留意
铁、维生素B12和叶酸缺乏会影响血小板宽度,这些食物可补充
美中出台新环保法规,物联网推动油气行业减排增效
5G与卫星物联网:从技术互补到产业融合,2027年市场规模将破4830亿美元
再生障碍性贫血:六大病因致造血衰竭,这些症状要警惕
医生建议:血小板减少时的饮食调整指南
南北互游、定制团热,春节申遗带动文旅新热潮
四川冬季亲子游全攻略:适合游玩与避暑的景点推荐
从组织变革到市场拓展:物业服务企业转型升级全攻略
手麻不止是压力大:成因解析与缓解方案
右手发麻别轻视:可能是颈椎病或糖尿病的预警信号
右手发麻的真相:4大原因+3项预防措施
久坐族必看:右手发麻的成因、缓解与预防全攻略
带病出战一日双赛,郑钦文辛辛那提站遗憾止步