我试图通过kmeans聚类来处理图像特征表示,这些特征表示已经被保存为数组列表。
features_list = []features = np.asarray(features_list) features_flat = features.reshape((features.shape[0], -1))k_means = cluster.KMeans(n_clusters=10, n_jobs=-1)k_means.fit(features_flat)
其中features_flat的信息如下:
print(features_flat)Out:[[ array([[[ 0.36470588, 0.32156863, 0.2627451 , 0.36862745], [ 0.36470588, 0.32156863, 0.2627451 , 0.36862745], [ 0.36470588, 0.32156863, 0.2627451 , 0.36862745], ..., [ array([[[ 0.19607843, 0.19215686, 0.14117647, 0.30980392], [ 0.19607843, 0.19215686, 0.14117647, 0.30980392], [ 0.19607843, 0.19215686, 0.14117647, 0.30980392], ..., ]]np.unique(list(map(len, features_flat)))Out: array([1])
运行k_means.fit()时,我得到了以下错误
ValueError: setting an array element with a sequence.
如何在创建正确类型的矩阵时保留数组中的数据?
回答:
谢谢 @[隐藏]
这种转换后的图像表示可以正常工作。
我希望它也能处理以下图像表示
,但这解决了这个问题。