Fit Gaussian to randomly distributed points
2 views (last 30 days)
Show older comments
I'm trying to recreate the signal produced by a microscope by randomly distributing x number of points(with a given intensity value) on a matrix of a size equal to the resolution(512). I then want to fit a gaussian on to each point to see at what density value of points do I lose the ability to resolve the peaks.
Regarding the code, I'm able to randomly allocate the points and set a peak intensity:
a=1 b=resolution
for i=1:number_of_points x=ceil(((b-a).*rand(i,1)+a)); y=ceil(((b-a).*rand(i,1)+a)); A(x,y)=100;
but I'm unable to fit gaussian to each one of those peaks. How would I take a single value in a matrix and fit a point spread function which caries over the entire matrix, until point density equals a value in which no peaks are resolvable
0 Comments
Answers (1)
Greig
on 26 May 2015
If I understand your question properly, I think imgaussfilt might be what you are looking for, but you will need to make some decision about the sigma value for the Gaussian. Also, I think it only does isotropic filtering (i.e., sigma is the same in all directions).
2 Comments
Greig
on 28 May 2015
I don't actually have Image Processing Toolbox, which is needed for imgaussfilt, so I cannot play around with it, but it should be able to handles this. It reads in an image matrix, which is 2D. In your case I think you want to use it like:
B = imgaussfilt([x,y], sigma);
See Also
Categories
Find more on Measurements and Feature Extraction in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!