1.前言
因为python的特征值分解存在复数矩阵的情况,而后续步骤不能很好的兼容复数,于是采用了范围更广的奇异值分解(SVD)进行图像处理。并且在后续测试中选取了不同的特征值进行保留(并不一定是最大的特征值)。
2.准备
numpy 处理矩阵
学习:https://blog.youkuaiyun.com/a373595475/article/details/79580734
PIL 图像处理
imageio 图像处理
3.奇异值分解(含源码)
3.1过程

上面是本次的案例图片
import numpy as np
from PIL import Image
import imageio
#获取图像并转换为三维数组
img=Image.open('妹子.jpg')
a=np.asarray(img)
下图是a矩阵的shape

可见是一个512 x 512 x 3的三维矩阵,第三个维度代表了每个像素点的RGB值,我们不妨将其考虑为R,G,B三个512 x 512的二维矩阵,分别进行奇异值分解,再对其进行整合,得到一个新的三维矩阵。
#定义重构函数
def rebuildimg(u,sigma,v,p,q):
m=len(u)
n=len(v)

本文介绍了如何使用奇异值分解(SVD)对图像进行处理,详细阐述了SVD的过程,并通过Python源码展示了不同特征值选取对图像效果的影响,包括对非正方形图片的处理。
最低0.47元/天 解锁文章
356

被折叠的 条评论
为什么被折叠?



