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)
评论列表
文章目录