04-13-2009 03:03 PM
Hi,
I am setting up an electronic speckle pattern interferometry (ESPI) system in my lab and have finally got it producing fringes of some nature. My next task is to write an analysis program that will automatically detect fringes and after playing around a bit I think I know what I want to do. If you have any other suggestions though, please let me know.
At the moment, I take the image which has fringes in it, smooth it by a closing operation, then take the FFT of it, cut out most of the high frequency stuff then inverse-FFT it back into a real image. From here, if I look at a profile across the image, I can see that the "background" is not constant, so if I perform a simple threshold, using AutoThreshold.vi or something similar, I am never able to pick up all of the fringes. What I would like to do, is get an "average" of the image (the image that has been smoothed and frequency filtered) and then from that average perform a threshold - ie for a given coordinate, if the value of the pixel is above that in the "average" function/image then that pixel will take the value of 1, or if it is below the 'average' then it will take a 0.
Basically, I can't see how to get this "average". Initially I would like to know how to extract it from a 1d waveform (or array of pixel values) because I figure that could easily be extended to 2D.
I've attached a chunk of my code (separated so as not to confuse the issue) that does the closing then FFT, then plots the pixel values across one row of the image. If anyone could suggest how I could get the underlying curve from the outputted waveform, then I would be very happy to hear from you!
Thanks
Sam
04-16-2009 11:26 AM
Hi Sam,
Thanks for your post and I hope your well today.
I noticed you've submited this forum post a few days ago and have recieved any support thus far. So I would like to work with you to see if I can provide any suggestions.
Firstly, could you provide me we a few drawings to explain what you would like to see ? Currently I am a little unsure.
So do you want to take an average of a line of pixels - pass the image through the filtering.smoothing and then compare the pixel by pixel from both images?
I am also unsure what you meant by the "underlying curve from the outputted waveform? Are you talking about curve fitting?
I hope with just a little more input from youselve I can work with you to help you out! Also what version of labVIEW are you using?
04-16-2009 02:25 PM
Hi,
Thanks for your reply. I've worked out how to do what I wanted to do - but thank you for your offer to help.
cheers
Sam
04-16-2009 03:06 PM
Hi Sam,
Thanks for the update and I hope your well this evening.
I do hope it wasnt to difficult to resolve your issue - could you maybe take a moment to explain and maybe post the code.. for future reference (and mine!)
Thanks again,
11-02-2009 07:28 PM
Hi
Can you post your updated VI's
Thanks