问题描述
我正在尝试在彩色图片上运行svd函数。彩色图片的尺寸为NxDx3,因此内存伪造,我决定只对每个彩色通道运行SVD方法,然后将3维矩阵放回去。
print(np.shape(X))
if X.ndim < 3: # For 2 dimensional matricies
u,s,v = np.linalg.svd(X,full_matrices=True) #Do the SVD function
else: # for 3+ dimensional matricies,make an empty list to append each color channel in
u = []
s = []
v = []
for i in range(3):
channel = X[i]#each channel
cu,cs,cv = np.linalg.svd(X[:,:,i],full_matrices=True)
u.append(cu)
s.append(cs)
v.append(cv)
print(len(s))
u = np.array(u)
v = np.array(v)
s = np.array(s)
print(s.ndim)
print("I worked")
return u,v
在遍历我的代码时,我意识到s数组总是一维太小,但是列表长度是正确的大小。为什么会这样?
例如,此打印
(1146,1908,3)
3
2
为什么我的尺寸不合适?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)