I have an Image and i want to estimate the color distribution of the input image by a Gaussian Mixture Model, how i can do it with Matlab?
myImage = imread('Jellyfish.jpg');
gmdistribution.fit(X,k)
is not work for me, because X must be a 2D Matrix and myImage is 3D Matrix, i get this error when use gmdistribution.fit(myImage,10)
:
X must be a numeric 2-D matrix.
when i use gmdistribution.fit(myImage(:,:,1),10)
for Red color of Image i get this error:
Error using var (line 59)
First argument must be single or double.
Error in gmdistribution.fit (line 133)
varX = var(X);
and when i use : gmdistribution.fit(single(myImage(:,:,1)),10)
i give this error:
Error using gmcluster (line 180)
Ill-conditioned covariance created at iteration 2.
Error in gmdistribution.fit (line 174)
[S,NlogL,optimInfo] =...
i want to use this for an Image Segmentation using Gaussian Mixture Models. if you have any idea, help me.