代码拉取完成,页面将自动刷新
import numpy as np
from scipy.linalg import hadamard
import math
def ht_filtering_hadamard(group_3D, sigma, lambdaHard3D, doWeight): # group_3D shape=(n*n, nSx_r)
nSx_r = group_3D.shape[-1]
coef_norm = math.sqrt(nSx_r)
coef = 1.0 / nSx_r
group_3D_h = hadamard_transform(group_3D)
T = lambdaHard3D * sigma * coef_norm
T_3D = np.where(np.abs(group_3D_h) > T, 1, 0)
weight = np.sum(T_3D)
group_3D_h = np.where(np.abs(group_3D_h) > T, group_3D_h, 0.)
group_3D = hadamard_transform(group_3D_h)
group_3D *= coef
if doWeight:
weight = 1. / (sigma * sigma * weight) if weight > 0. else 1.
return group_3D, weight
def hadamard_transform(vec):
n = vec.shape[-1]
h_mat = hadamard(n).astype(np.float64)
v_h = vec @ h_mat
return v_h
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。