Я ищу функции для выполнения сегментации зашумленных медицинских изображений (оттенки серого) с помощью GMM (модели смесей Гаусса).
Я нашел в MATLAB:
gm = gmdistribution(mu,sigma)
idx = cluster(gm,X)
учитывая X
, мое изображение в градациях серого.
Как бы вы определили mu
и sigma
? Какого размера они должны быть? И как бы вы их инициализировали?
Я пробовал следующее (учитывая размер изображения (576x720)):
mu = rand(5,size(X,2));
sigma = ones(720,720);
gm = gmdistribution(mu,sigma);
idx = cluster(gm,X);
но я получаю сообщение об ошибке:
Ошибка при использовании
wdensity
(строка 29)
Создана неправильная ковариация.Ошибка в
gmdistribution
/cluster
(строка 59)log_lh=wdensity(X,obj.mu, obj.Sigma, obj.PComponents, obj.SharedCov, CovType);
У меня есть базовое представление о том, как работает GMM, то есть о мягкой кластеризации, но мне нужна помощь более продвинутого человека, чтобы понять, что я здесь делаю.