Spaces:
Runtime error
Runtime error
import numpy as np | |
def rebuild_img(u, sigma, v, percent): #p表示奇异值的百分比 | |
m = len(u) | |
n = len(v) | |
a = np.zeros((m, n)) | |
#根据指定的清晰度提取奇异值 | |
#(清晰度越高,压缩比越低,提取的奇异值的个数也就越多,图片也就越不会失真) | |
count = (int)(sum(sigma)) | |
curSum = 0 | |
k = 0 | |
while curSum <= count * percent: | |
uk = u[:, k].reshape(m, 1) | |
vk = v[k].reshape(1, n) | |
a += sigma[k] * np.dot(uk, vk) | |
curSum += sigma[k] | |
k += 1 | |
a[a < 0] = 0 | |
a[a > 255] = 255 | |
#按照最近距离取整数,并设置参数类型为uint8 | |
return np.rint(a).astype("uint8") |