12-27-2007 01:45 PM
Hi, I am trying to make a laser spot detector using Labview 8.2. I am shining the laser on a CCD camera and getting the signal as an 800 x 600 array where the 8-bit integer data represents the intensity of the light that hits each pixel of the camera. The laser spot moves slowly and I would like to track the position of the peak intensity (center of the spot) every second or so with as much precision as possible. The shape of the laser spot is roughly a Gaussian surface.
So far I’m using the Array Max function to get the coordinates of the maximum value (the signal can be a bit noisy), then read the row that corresponds to that maximum and use the Gaussian Peak Fit function to get the most precise peak X position. I then repeat the same process with the column to get the most precise peak Y position. This works relatively well, but it is not very efficient and I can get a bad peak position if I get the wrong maximum value from the Array Max function (for example, if the camera has a stuck high pixel that has nothing to do with the light intensity).
I guess there must be a better way to achieve the same results and make sure that I don’t get bad peak position once in a while. I checked the peak detection functions available in Labview 8.2, but I think that none can be used for finding the peak of a surface. Any suggestion would be greatly appreciated. Thanks.
12-27-2007 09:56 PM
12-27-2007 10:05 PM
12-28-2007 07:50 AM
12-28-2007 03:34 PM - edited 12-28-2007 03:36 PM
01-04-2008 01:22 PM
01-04-2008 02:26 PM - edited 01-04-2008 02:27 PM
01-04-2008 06:14 PM
01-07-2008 10:21 AM
01-09-2008 12:24 PM