Path: news.mathworks.com!not-for-mail
From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: 3d surface fitting
Date: Wed, 23 Apr 2008 01:28:02 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 28
Message-ID: <fum3b2$nc9$1@fred.mathworks.com>
Reply-To: <HIDDEN>
NNTP-Posting-Host: webapp-02-blr.mathworks.com
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Trace: fred.mathworks.com 1208914082 23945 172.30.248.37 (23 Apr 2008 01:28:02 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Wed, 23 Apr 2008 01:28:02 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1363902
Xref: news.mathworks.com comp.soft-sys.matlab:464664



Hi,

I have a 320x240 pixel grayscale image, which captures the
intensity profile information of a beam. The beam is a
nondiffracting bessel beam... and hence, features a bessel
function distribution in 3D.

I'm trying to fit a 5 parameter bessel function to the data,
so that I can extract the bessel parameters. While I've done
some 2d curve fitting before, I'm not sure how to do 3D
surface fitting. 

I tried using lsqcurvefit and some other functions, but
nothing seems to work. Mainly, I'm not sure how to pass the
data and the objective function correctly.

My 5 parameter objective function is:

a * [besselj(0,b * sqrt( (x-c)^2 + (y-d)^2 ) )]^2 + e

My image data is a 320x240 array of type 'double'.

Can somebody please guide me about fitting my data to the
equation, and producing a mesh of it?

Thanks in advance!
Arjun