导入流形图Isomap的图像

时间:2016-07-17 23:25:06

标签: python pandas dataframe

有192 x 144像素的图像。应将它们导入到Python列表中,以便列表中的项目为NDArray实例。应从列表中创建新的数据帧,并将该数据帧提供给Isomap。 iso.fit(df)因错误而失败

array = array.astype(np.float64)

ValueError: setting an array element with a sequence.

我花了一天多的时间试图弄清楚NDArrays应该如何处理以及数据框是如何处理的。没运气。任何帮助将不胜感激。

import pandas as pd
from scipy import misc
import glob
from sklearn import manifold

samples = []

for filename in glob.glob('Datasets/ALOI/32/*.png'): 
    img = misc.imread(filename, mode='I')
    samples.append(img)

df = pd.DataFrame.from_records(samples, coerce_float=True)

iso = manifold.Isomap(n_neighbors=6, n_components=3)
iso.fit(df)

1 个答案:

答案 0 :(得分:1)

如果这些是来自ALOI的灰度图像,您可能希望将每个像素的亮度视为一项功能。因此,您应该使用img.reshape(-1)展平img数组。修订后的代码如下:

import pandas as pd
from scipy import misc
import glob
from sklearn import manifold

samples = []

for filename in glob.glob('Datasets/ALOI/32/*.png'): 
    img = misc.imread(filename, mode='I')
    # the following line changed
    samples.append(img.reshape(-1))

df = pd.DataFrame.from_records(samples, coerce_float=True)

iso = manifold.Isomap(n_neighbors=6, n_components=3)
iso.fit(df)