0

我正在寻找使用 GMM(高斯混合模型)对嘈杂的医学图像(灰度)进行分割的功能。

我在 MATLAB 中发现:

gm = gmdistribution(mu,sigma)
idx = cluster(gm,X)

给定X,我的灰度图像。

你会如何定义musigma?它们应该是什么尺寸?你将如何初始化它们?

我尝试了以下方法(给定尺寸(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 的工作原理(即软聚类)有一个基本概念,但我希望得到更高级人员的帮助,以了解我在这里所做的事情。

4

1 回答 1

0

错误的功能。您正在寻找fitgmdist(X,k),在其中输入您对要分割为k的对象数量的估计。然后程序将尝试使用 EM 算法计算 mu 和 sigma。

创建病态协方差 - 警告是典型的,如果您的数据嘈杂,您会看到很多。我建议正则化,通过调整“RegularizationValue”-参数,可能对协方差结构设置约束和/或过滤噪声图像。使用BM3D(用于 2D 图像)和BM4D -filters(用于 3D 图像)时,我总是有很好的结果。

如果您有任何具体问题,我很乐意为您提供帮助,但您也必须为此做足功课。图像处理很困难,在基本的东西开始可靠工作之前,你需要处理一堆移动部件。

于 2019-01-15T12:57:42.307 回答