def _extract_svd_sig(self,vec,siglen):
Q = 32
ext_sig=[]
for i in range(0,vec.shape[0],8): #128*128
for j in range(0,vec.shape[1],8):
u,s,v = np.linalg.svd(np.mat(vec[i:i+8,j:j+8]))
z = s[0] % Q
if z>=Q/2 :
ext_sig.append(1)
else:
ext_sig.append(0)
if siglen >len(ext_sig):
logging.warning('extract svd sig is {},small than needed {}'.format(len(ext_sig),siglen))
ext_sig.extend([0] * (siglen - len(ext_sig)))
else:
ext_sig = ext_sig[:siglen]
return [ext_sig]
##################################################################################################################################
评论列表
文章目录