我正在尝试对这张图片进行奇异值分解:
只取前10个值。这是我的代码:
from PIL import Image
import numpy as np
img = Image.open('bee.jpg')
img = np.mean(img, 2)
U,s,V = np.linalg.svd(img)
recon_img = U @ s[1:10] @ V
但是当我运行它时,它会抛出这个错误:
ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 9 is different from 819)
我觉得在重构时做错了什么。我不确定np.linalg.svd(img)
创建的矩阵的维度是什么。
该如何解决?
对于英语我很抱歉。