图像PC的二维散点图

时间:2017-09-01 08:37:55

标签: image python-3.x matplotlib

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

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 个答案:

答案 0 :(得分:1)

pca.fit_transform()返回一个新的形状数组(n_samples,n_components)。这是分数数据,您可以将其绘制为双时隙分散。

每个组件的得分都在数组的第二维中,因此您可以索引到数组并绘制如下图。

im_pca = pca.fit_transform(images_equalized[35])

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