MATLAB: Surface Fit over image

surface fit

I have a image like this
I want to do a Gaussian Surface fit over this image. Any suggestions would help.

Best Answer

Here's my first pass thoughts:
First steps:
  1. Obtain X and Y coordinates of your pixels
  2. ensure your pixel values are of type double (maybe this is not super important)
  3. Decide if you want to call your X,Y coordinates your principal directions or not to decide the form of the function you want
Options:
  1. If you have optimization/curve fitting toolbox functions, use them
  2. If you don't, you can pretty easily write your own with fminsearch (only need 6 parameters and you have good initial guesses)
  3. If everything is Gaussian, maybe you can take a data/statistics approach to do [non-iterative] underlying parameter estimation technique (means and standard deviations?) from a data set constructed based on the pixel values...for univariate problems, i've found this to be a nice stand-in to actual fitting, which can be non-robust if you don't have good initial guesses and algorithms.
Related Question