Calculates max likelihood params of Gaussian that gave rise to image G. Suppose G contains an image of a gaussian distribution. One way to recover the parameters of the gaussian is to threshold the image, and then estimate the mean/covariance based on the coordinates of the thresholded points. A better method is to do no thresholding and instead use all the coordinates, weighted by their value. This function does the latter, except in a very efficient manner since all computations are done in parallel over the entire image. This function works over 2D or 3D images. It makes most sense when G in fact contains an image of a single gaussian, but a result will be returned regardless. All operations are performed on abs(G) in case it contains negative or complex values. symmFlag is an optional flag that if set to 1 then imMlGauss recovers the maximum likelihood symmetric gaussian. That is the variance in each direction is equal, and all covariance terms are 0. If symmFlag is set to 2 and G is 3D, imMlGauss recovers the ML guassian with equal variance in the 1st 2 dimensions (row and col) and all covariance terms equal to 0, but a possibly different variance in the 3rd (z or t) dimension. USAGE varargout = imMlGauss( G, [symmFlag], [show] ) INPUTS G - image of a gaussian (weighted pixels) symmFlag - [0] see above show - [0] figure to use for optional display OUTPUTS mu - 2 or 3 element vector specifying the mean [row,col,z] C - 2x2 or 3x3 covariance matrix [row,col,z] GR - image of the recovered gaussian (faster if omitted) logl - log likelihood of G given recov. gaussian (faster if omitted) EXAMPLE - 2D R = rotationMatrix( pi/6 ); C=R'*[10^2 0; 0 20^2]*R; G = filterGauss( [200, 300], [150,100], C, 0 ); [mu,C,GR,logl] = imMlGauss( G, 0, 1 ); mask = maskEllipse( size(G,1), size(G,2), mu, C ); figure(2); im(mask) EXAMPLE - 3D R = rotationMatrix( [1,1,0], pi/4 ); C = R'*[5^2 0 0; 0 2^2 0; 0 0 4^2]*R; G = filterGauss( [50,50,50], [25,25,25], C, 0 ); [mu,C,GR,logl] = imMlGauss( G, 0, 1 ); See also GAUSS2ELLIPSE, PLOTGAUSSELLIPSES, MASKELLIPSE Piotr's Computer Vision Matlab Toolbox Version 2.0 Copyright 2014 Piotr Dollar. [pdollar-at-gmail.com] Licensed under the Simplified BSD License [see external/bsd.txt]