Azzera filtri
Azzera filtri

using the fitgmdist function on an image

2 visualizzazioni (ultimi 30 giorni)
Newman
Newman il 27 Set 2015
Modificato: Newman il 28 Set 2015
Hi all, I want to cluster my binary image using the Gaussian mixture model (EM algorithm).How to first of all use the fitgmdist to fit a GMM into my binary image? It uses a mean and variance and prior probability on its own in the official mat lab example .SO in the case of an image (binary) will that correspond to the mean variance of the entire image ???or some particular rows and columns of the image?? how to decide that also ??kindly help!!
I=imread(('sil10340.pbm'));
%img is the name of the image
% k is the no of clusters
%read file
I = 255 * uint8(I);
I=im2double(I);
K=10;
%choose indices of 'white' pixels as coordinates of data
[datax datay]=find(I);
%cluster data into 10 clumps
[cInd, c] = kmeans([datax datay], K, 'EmptyAction','singleton',...
'maxiter',1000,'start','cluster');
obj = fitgmdist(I,K,'Regularizationvalue',0.1);
idx = cluster(obj,I);
cluster1 = I(idx == 1,:);
cluster2 = I(idx == 2,:);
figure;
gscatter(datay,-datax);
hold on
h1=scatter(cluster1(:,1),cluster1(:,2),10,'r.');
h2=scatter(cluster2(:,1),cluster2(:,2),10,'g.');
% scatter(obj.mu(:,2),-obj.mu(:,1),20,'ko'); %same funky coordinates
% scatter(c(:,2),-c(:,1),20,'k+'); %same funky coordinates
legend([h1 h2],'Cluster 1','Cluster 2','Location','NW')

Risposte (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by