isomapPCA.py 文件源码

python
阅读 28 收藏 0 点赞 0 评论 0

项目:FaceAnalysis 作者: ElliotSalisbury 项目源码 文件源码
def visualisePCA(dstFolder):
    meanIsomap = pickle.load(open(os.path.join(dstFolder, "meanIsomap.p"), "rb"))
    pca = pickle.load(open(os.path.join(dstFolder, "pca.p"), "rb"))

    for i in range(10):
        for j in np.linspace(-1,1,3):
            X = [0,]*10
            X[i]=j*np.sqrt(pca.explained_variance_[i])
            displayIm = getIsoMapFromPCA(pca, meanIsomap, X)
            displayIm = cv2.cvtColor(displayIm[:, :, :3].astype(np.uint8), cv2.COLOR_LAB2BGR)
            cv2.imshow("pca_{}".format(j), displayIm.astype(np.uint8))
        # cv2.waitKey(-1)

    isomaps = pickle.load(open(os.path.join(dstFolder, "0_isomaps_centered.p"), "rb"))
    #play with variance
    for i in range(isomaps.shape[0]):
        isomap_just_color = isomaps[i, :, :, 1:3]

        # flatten to data
        X = isomap_just_color.reshape(1, -1)
        isomap_pca_color = pca.transform(X)[0]

        scale = 1
        # for j in range(5):
        new_isomap_pca_color = isomap_pca_color.copy()
        # new_isomap_pca_color[j] += np.sqrt(pca.explained_variance_[j]) * scale

        isomap_new_color = pca.inverse_transform(new_isomap_pca_color)
        isomap_new_color = isomap_new_color.reshape(isomap_just_color.shape[0],isomap_just_color.shape[1],isomap_just_color.shape[2])

        isomap_full = isomaps[i,:,:,:3].copy()
        isomap_full[:,:,1:] = isomap_new_color

        displayIm = isomaps[i, :, :, :3].copy() + meanIsomap[:, :, :3]
        displayIm = cv2.cvtColor(displayIm[:, :, :3].astype(np.uint8), cv2.COLOR_LAB2BGR)
        cv2.imshow("isomap_orig", displayIm.astype(np.uint8))

        displayIm = isomap_full.copy() + meanIsomap[:, :, :3]
        displayIm = cv2.cvtColor(displayIm[:, :, :3].astype(np.uint8), cv2.COLOR_LAB2BGR)
        cv2.imshow("isomap_new", displayIm.astype(np.uint8))
        cv2.waitKey(-1)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号