2017-09-01 133 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])