本征图像函数生成一个窄条,而不是平均图像

2024-10-03 11:26:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我从一本书中得到了这个函数:

def EigenImages( d ):
    N,V,H = d.shape
    dd = d.astype(float) - d.astype(float).mean(0)
    L = np.zeros( (N,N) )
    for i in range( N ):
        L[i,i] = (dd[i] * dd[i]).sum()
        for j in range( i ):
             L[i,j] = L[j,i] = (dd[i] * dd[j] ).sum()
    evls, evcs = np.linalg.eig( L )
    emgs = []
    for j in range( N ):
        a = np.zeros( (V,H) )
        for i in range( N ):
            a += evcs[i,j]*dd[i]
        emgs.append( a/np.sqrt(evls[j]) )
    return emgs, evls

但它不能正常工作。它不会生成特征图像,而是生成一条窄条,如下所示: enter image description here

怎么了


Tags: 函数infordefnpzerosrangefloat