Direct 2D FFT from sinogram. Polar to cartesian grid interpolation in Matlab

15 views (last 30 days)
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
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
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.

Sign in to comment.

Accepted Answer

Matt J
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)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!