gpt4 book ai didi

python - Python 中的聚类 - 图像聚类

转载 作者:行者123 更新时间:2023-11-28 19:08:45 24 4
gpt4 key购买 nike

我想使用 K 均值或其他算法(需要建议)对图像进行聚类。

问题是这样的——我想将图像聚类成 3 个聚类(自然、日落、水)。我使用 os.listdir() 加载了所有图像,然后将所有图像转换为数组 (RGB),然后创建了一个包含三列的数据框 - ID、Image_array、Label。

现在,当我使用 K 均值聚类时,提供 n_clusters = 3,它显示此错误:

from sklearn.cluster import KMeans kmeans = KMeans(n_clusters = 3).fit(img_array) ERROR = Found array with dim 4. Estimator expected <= 2.

现在,我需要你的帮助来解决这个聚类问题。我创建的数据框看起来像这样

img_array = []

path = "C://Users/shivam/Desktop/freelancer/p22/data/green_nature/"
for f in os.listdir('.'):
if f.endswith('.jpg'):
img = Image.open(f)
data = np.asarray(img, dtype='uint8')
img_array.append(data)


df = pd.DataFrame({'image_arrays':img_array})
df['id'] = range(1, len(df) + 1)

最佳答案

发生这种情况是因为您传递了 4 维数组,而预期是 2 维数组。 'img_array.shape' 应该是这样的(n_samples,n_features)。您需要使用特征提取算法。

这可以通过 scikit-image 模块来完成。您需要将图像转换为灰度格式。代码:

import skimage.feature as feature
img_converted = []
for i in range(len(img_array)):
img_converted.append(feature.hog(img_array[i]))
model.fit(np.array(img_converted))

文档:http://scikit-image.org/docs/dev/api/skimage.feature.html#hog

关于python - Python 中的聚类 - 图像聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43186054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com