Я знаю, что Gaussian mixture model
является обобщением K-means
и поэтому должно быть более точным.
Но я не могу сказать по сгруппированному изображению ниже, почему результаты, полученные с помощью K-means
, более точны в определенных областях (например, спекл-шум, показанный светло-голубыми точками, сохраняется в реке в результатах Gaussian Mixture Model
, но не в результатах K-means
).
Ниже приведен код matlab
для обоих методов:
% kmeans
L1 = kmeans(X, 2, 'Replicates', 5);
kmeansClusters = reshape(L1, [numRows numCols]);
figure('name', 'Kmeans clustering')
imshow(label2rgb(kmeansClusters))
% gaussian mixture model
gmm = fitgmdist(X, 2);
L2 = cluster(gmm, X);
gmmClusters = reshape(L2, [numRows numCols]);
figure('name', 'GMM clustering')
imshow(label2rgb(gmmClusters))
А ниже показано исходное изображение, а также кластеризованные результаты:
Исходное изображение:
К-означает:
Модель гауссовой смеси:
P.S: я группирую, используя только информацию об интенсивности, и количество кластеров равно 2
(т. е. вода и земля).