Я ищу функции для выполнения сегментации медицинских изображений с шумом (оттенки серого) с помощью GMM (Gaussian Mixture Models).
Я нашел в 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, то есть мягкая кластеризация, но я хотел бы помочь более опытному человеку понять, что я здесь делаю.