2017-09-01 30 views
1

我需要在图像上应用PCA来制作前两个PC的二维散点图,并确定高密度区域,这些区域被进一步视为ROI(感兴趣区域)。基本上,它是用于图像分割的PCA。
但是,我是matplotlib的新手,我无法理解如何绘制PC?
这是我最初的代码,其中加载和标准化几个图像(顺便说一下,就是直方图均衡化PCA之前标准化图像的正确方法吗?),并尝试在其中一人进行PCA:
图像PC(s)的二维散点图

from skimage import io 
from skimage import exposure 
import os 
import matplotlib.pyplot as plt 
import numpy as np 
from sklearn.decomposition import PCA 
images = io.imread_collection(image_path) 
images_equalized = [] 
for i in range(len(images)): 
    images_equalized.append(exposure.equalize_hist(images[i])) 
pca = PCA(n_components=2) 
im_pca = pca.fit_transform(images_equalized[35]) 

现在,如何制作散点图?
plt.imshow(im_pca)
plt.show()

图像形状是(508,636)

回答

1

pca.fit_transform()返回形状(N_SAMPLES次,n_components)的新的数组。这是可以绘制为双散点分数的分数数据。

每个组件的分数都在数组的第二维中,因此您可以按如下方式将数组索引到图中。

im_pca = pca.fit_transform(images_equalized[35]) 

plt.scatter(im_pca[:,0], im_pca[:,1])