Mathew Posted March 13, 2009 Report Share Posted March 13, 2009 Hello I am having an image. I converted this image to 2D array. Now i do the polar conversion in this array.Suppose on a polar grid i need values along 6 angles(60,120,180,240,300,360 degrees). I am having a 2D array in Rectangular grid. So i nterpolate values in 2D array and found the required values in polar grid. With these values i perfomed FFT and got a plot. Now i take the peak values from this FFT array and i need to go back in the reverse direction so that i may see as real picture what these peak values look like. So as a first step i do the inverse FFT for these values. What would bethe next step.? How can i get those old points in 2D array from this interpolated values in polar grid? Thanksss See attachmenet to understand the rectangular polar grid system Quote Link to comment
Justin Reina Posted March 14, 2009 Report Share Posted March 14, 2009 Hello Matthew, Forgive my lack of expertise in the realm of DSP, but could you use a neighbor-weighting function to map your final image? Maybe each pixel could be a weighted sum of your data set by proximity? Not my area of specialty, but saw you hadn't gotten a response so thought I'd take a stab. Let me know how you project turns out. Also, if you need help implementing in LV, let me know. Best of Luck, Justin oops sorry the attachment is so big B&W PNG that is 103kB... Quote Link to comment
jdunham Posted March 15, 2009 Report Share Posted March 15, 2009 I think Justin's approach is pretty good, and might be the fastest to implement. If you are looking for more work and higher accuracy, you could try a two step approach, creating a curve fit along each polar axis. For each radial line and each circle, use a curve fit to create a function that you can interpolate along any point (this is all available in the LabVIEW analysis libraries). You could fit the data to a polynomial or a spline, whichever seems more appropriate for your dataset. For the circles, don't forget to fit the same end point in both directions so that your fit doesn't have a terrible discontinuity where the angle rolls over. Then you would take each point in the rectangular array, and express it in polar coordinates. Then evaluate those points in your nearest fits and combine them. So for point xi, yi, compute [r(xi,yi), theta(xi,yi)], then find your nearest fits r(a), and r(a+1) and evaluate them at theta(xi,yi). Similarly, find your nearest fits theta(b) and theta(b+1), and evaluate them at r(xi,yi). Then take those four points and combine them either with a simple average or a weighted distance average like Justin showed. Quote Link to comment
Mathew Posted March 18, 2009 Author Report Share Posted March 18, 2009 Hello Everybody... sorry for the late response... I was having tropuble in accesing the site.. I think i need the method which jdunham mentioned... But could you both please explain it in a VI. It would be much clearer then.. thanksss QUOTE (jdunham @ Mar 14 2009, 12:09 AM) I think Justin's approach is pretty good, and might be the fastest to implement. If you are looking for more work and higher accuracy, you could try a two step approach, creating a curve fit along each polar axis. For each radial line and each circle, use a curve fit to create a function that you can interpolate along any point (this is all available in the LabVIEW analysis libraries). You could fit the data to a polynomial or a spline, whichever seems more appropriate for your dataset. For the circles, don't forget to fit the same end point in both directions so that your fit doesn't have a terrible discontinuity where the angle rolls over. Then you would take each point in the rectangular array, and express it in polar coordinates. Then evaluate those points in your nearest fits and combine them. So for point xi, yi, compute [r(xi,yi), theta(xi,yi)], then find your nearest fits r(a), and r(a+1) and evaluate them at theta(xi,yi). Similarly, find your nearest fits theta(b) and theta(b+1), and evaluate them at r(xi,yi). Then take those four points and combine them either with a simple average or a weighted distance average like Justin showed. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.