Direct 2D FFT from sinogram. Polar to cartesian grid interpolation in Matlab
7 views (last 30 days)
Show older comments
down vote favorite
In the theory of tomography imaging a sinogram is recorderded, which is series of projections at different angles of the sample. Taking FFT of this projections gives a slice in polar coordinates of the sample in the frequency space. But this is in polar coordinates.
How is the polar to cartesian grid interpolation implemented numerically in 2D in matlab.
[X,Y] = pol2cart(THETA,RHO) will not do it automatically.
3 Comments
Oren
on 15 Aug 2017
Hi Matt,
Can you please elaborate (give source) on the claim that numerical implementations of the slice-project theorem are "known to be an artifact-prone"? What kind of problems should one expect?
thank you
Oren
Matt J
on 15 Aug 2017
Edited: Matt J
on 15 Aug 2017
Oren,
This is probably a good place to start,
O’Sullivan J D 1985 A Fast Sinc Function Gridding Algorithm for Fourier Inversion in Computer Tomography IEEE Trans. Med. Imaging 4 200–7
I may have overstated the difficulties with direct Fourier methods a bit, but the paper will give a trail of literature arguing that they will not work as well as FBP if the polar-cartesian interpolation is done naively.
Accepted Answer
Matt J
on 29 Sep 2014
Edited: Matt J
on 29 Sep 2014
Once you apply pol2cart, your X,Y data will be a scattered data set, which you could interpolate at a Cartesian grid of XI,YI target points using scatteredInterpolant. Alternatively, you could convert your target XI,YI Cartesian coordinates to polar target points RHOI,THETAI using cart2pol. Then you can do gridded interpolation at those target points with your original RHO, THETA using interp2 or griddedInterpolant.
More Answers (0)
See Also
Categories
Find more on Read, Write, and Modify Image 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!