通过高斯混合模型估计颜色分布

时间:2014-11-28 15:26:01

标签: matlab gaussian image-segmentation estimation mixture-model

我有一个图像,我想通过高斯混合模型估计输入图像的颜色分布,我怎么能用Matlab做到?

myImage = imread('Jellyfish.jpg');

gmdistribution.fit(X,k)对我不起作用,因为X必须是2D Matrix而myImage是3D Matrix,我在使用gmdistribution.fit(myImage,10)时会收到此错误: X必须是数字2-D矩阵。

当我使用gmdistribution.fit(myImage(:,:,1),10)用于Image的红色时出现此错误:

Error using var (line 59)
First argument must be single or double.

Error in gmdistribution.fit (line 133)
varX = var(X);

当我使用时:gmdistribution.fit(single(myImage(:,:,1)),10)我给出了这个错误:

Error using gmcluster (line 180)
Ill-conditioned covariance created at iteration 2.

Error in gmdistribution.fit (line 174)
    [S,NlogL,optimInfo] =...

我想用它来进行使用高斯混合模型的图像分割。如果您有任何想法,请帮助我。

1 个答案:

答案 0 :(得分:0)

就这样称呼它

gmdistribution.fit(single(myImage(:,:,1)),10)

重点是默认情况下RGB图像作为整数元素的数组加载。你说这个函数不能接受整数元素 - 它需要单个double(浮点数据类型)。您可以通过显式类型转换来完成此操作。