首页 > 解决方案 > 如何将多个特征组合到 KMeans 中

问题描述

我尝试根据边缘特征对图像进行聚类。

以下方法提取每个图像的边缘:

from skimage.filters import prewitt_h,prewitt_v
from skimage.filters import roberts_pos_diag, roberts_neg_diag
from sklearn.cluster import KMeans

features=[]    
def extract_edges(img):
     edges_h = prewitt_h(img)
     edges_v = prewitt_v(img)
     edges_d = roberts_pos_diag(img)
     edges_nd = roberts_neg_diag(img)
     return (edges_h, edges_v, edges_d, edges_nd)

features.append(extract_edges(img))

加载一些图像后,我尝试使 e KMeans 适合这些功能,引发以下异常:

kmeans_pca = KMeans(n_clusters=3, random_state=42).fit(features)
>> ValueError: Found array with dim 4. Estimator expected <= 2.

我还需要对特征进行矢量化吗?我将如何做到最好?

标签: pythonscikit-learnk-meansscikit-image

解决方案


推荐阅读