Fourier Slice Theorem or central Slice Theorem

Discussion in 'MATLAB' started by Dinesh Bhati, Sep 28, 2010.

  1. Dinesh Bhati

    Dinesh Bhati Guest

    Hi,
    Is it true that central slice theorem holds only with Fourier Transform and not Discrete Fourier Transform.
    I sampled a slice of (radial spoke) of 2-D DFT of a rectagular image.However it has not come as perfect SINC function.
    Sorry there is no facility to attach figure otherwise you could see the simulation result.

    Thanks
    Dinesh
     
    Dinesh Bhati, Sep 28, 2010
    #1
    1. Advertisements

  2. Dinesh Bhati

    Bart Goris Guest

    Hi,

    I have never heard about the fact that the central slice theorem doesn't work with DFT, but I also havn't succeeded in implementing it. So if you succeed, let me know... :)
     
    Bart Goris, Sep 28, 2010
    #2
    1. Advertisements

  3. Dinesh Bhati

    dbd Guest

    An infinite continuous function like the sinc cannot be represented
    exactly by a finite sampled function. The central slice theorem for
    the finite sampled data cannot be identical to the infinite continuous
    form of the central slice theorem. Outside of symbolic manipulation,
    you must work with the finite sampled form on your computer with
    programs like Matlab. Learn about discrete and finite arithmetic and
    their effects on the Fourier transform to be able to determine how to
    apply the DFT to your application.

    Dale B. Dalrymple
     
    dbd, Sep 28, 2010
    #3
  4. Dinesh Bhati

    Matt J Guest

    ===========

    Even if you were working with perfect continuous transforms, the radial spoke of the image spectrum would only be a perfect sinc if the projection angle were 0 or 90 degrees.
     
    Matt J, Sep 28, 2010
    #4
  5. Dinesh Bhati

    Dinesh Bhati Guest

    No, plese note that at all the angles it should be a perfect sinc. since, the radon projection at any angle is just a pulse it should be perfect sinc function.

    May I have your email ID so that I can post you the figure of Sinc that I got from 1-D FFT of radon projctioin(it is perfect sinc) and by sampling a slice on 2-D FFT.
    Dinesh
     
    Dinesh Bhati, Sep 29, 2010
    #5
  6. Dinesh Bhati

    Matt J Guest

    ======

    No, the radon projection of a rectangular object is not a rectangular pulse except at those angles where the projection rays are parallel to the sides of the rectangle.

    At other projection angles, the intersection length of projection rays with the rectangle will vary quadratically as a function of the radial ray position.
     
    Matt J, Sep 29, 2010
    #6
  7. Dinesh Bhati

    Dinesh Bhati Guest

    ==========
    No, my simulation on matlab shows that it is pulse at all the angles and only pulse width changes.THe 1-D FFT also show a perfect sinc function. IF it triangle also then also the projection will be pulse

    let me send you he plots.please give me you email id
     
    Dinesh Bhati, Sep 29, 2010
    #7
  8. Dinesh Bhati

    Matt J Guest

    =======

    Something wrong with the simulation then. It's easy to see why it can't be true. At 45 degrees, there will be rays that intersect near the corner of the rectangle, where the intersection length is very small. Conversely, rays that cut through the center of the rectangle will always be large.



    THe 1-D FFT also show a perfect sinc function. IF it triangle also then also the projection will be pulse
    ======

    If you must show them, I recommend putting them at, http://drop.io/
    but I don't know why you expect them to be convincing. I wouldn't know what code generated those plots, nor what numerical test you did to see how well ithey fit a sinc.
     
    Matt J, Sep 29, 2010
    #8
  9. Dinesh Bhati

    Matt J Guest

    ==========

    Just to make sure we're talking about the same thing, I've provided code for my own quick simulation below. The plots clearly show that at 0 degrees, the radon projection is indeed a rectangular pulse and its FFT is indeed very sinc-like. However, at 45 degrees, the radon projection clearly is NOT a rectangular pulse (but rather a triangle) and its FFT is clearly NOT a sinc (note that the oscillations never run negative).



    x=[zeros(1,50) ones(1,30) zeros(1,50)];

    img=x.'*x; %image of square


    for angle=[0 45]

    Projection=radon(img,angle);

    figure
    plot(Projection); %plot of projection
    title(['Projection at ' num2str(angle) ' degrees'])

    figure
    plot(fftshift(real(fft(ifftshift(Projection))))) %plot of spectrum
    title(['Projection FFT at ' num2str(angle) ' degrees'])
    end
     
    Matt J, Sep 29, 2010
    #9
  10. Dinesh Bhati

    Dinesh Bhati Guest

    Yes you are correct,However, when one side of the rectangle is very small compare to other side then the traingle (projection at 45 degrees ) is not noticable and that's where I was making a mistake.For example consider a line in place of rectangle.

    Now can you tell me when I sampled a slice at a certain angle on 2-D FFTof an image with a line (not rectangle) why it is not a perfect sinc.Actually it shows sinc function with its lobes separated by some gaps.
     
    Dinesh Bhati, Sep 30, 2010
    #10
  11. Dinesh Bhati

    Matt J Guest

    =======

    How could I? I haven't seen the code you are using.
     
    Matt J, Sep 30, 2010
    #11
  12. Dinesh Bhati

    Frank Guest

    No. But a look into relevant literature will show you that implementing central slice theorem (and there are lots of implementations) is much more than just doing the FFT, since it involves interpolation between a polar and a rectangular grid. I assume that's what you've come across: When you take your "slices" non-parallel to the axes, you need to interpolate, which ususally doesn't work.
     
    Frank, Sep 30, 2010
    #12
  13. Dinesh Bhati

    Dinesh Bhati Guest

    ===============

    This is exactly what I am doing.Literature has explained the theorem using Fourier Transform and not DFT.

    I am able to regenerate the image from the sufficient number of slices on the 2-D FFT plane.However, it shows small mean square error difference from the original image.My target is to minimize this difference.

    For the case of a image with a line in it what do you think what could be the reason of getting gaps in between the two lobes of a sinc function.Note it is the magnitude of sinc function I am talking about that never run negative.
     
    Dinesh Bhati, Sep 30, 2010
    #13
  14. Dinesh Bhati

    Frank Guest

    I don't get it. If you looked into the literature, you should have read that what you're trying to do won't work, unless you use nonequidistant FFT or gridding.
     
    Frank, Sep 30, 2010
    #14
  15. Dinesh Bhati

    Dinesh Bhati Guest

    ==========
    The book DIP by Anil K Jain give the proof using FT and not DFT.May I know if you have seen the proof with DFT.

    I guess it does not hold with DFT and this could be the reason of gaps I am getting in the sinc function.

    CAn we conclude we can't implement this theorem in MATLAB because matlab implements DFT and not FT
     
    Dinesh Bhati, Oct 1, 2010
    #15
  16. Dinesh Bhati

    Matt J Guest

    =====

    It's doubtful that one could derive a DFT analogue to the Central Slice Theorem because how would you define the radon projection of a discrete object?


    ========


    Your guess is as good as ours. Probably better, since you've seen your code whereas we have not.

    =================


    No, we can't conclude that. If you sample your image and projections finely enough, you can reproduce the Central Slice Theorem with arbitrary accuracy. By that, I mean you can get arbitrarily accurate agreement between the FFT of the radon projections and the central sections of the image's 2D FFT.

    However, and this is what Frank is saying I think, nobody ever uses the Central Slice Theorem for image reconstruction because it is more sensitive to errors and more artifact-prone than other methods like filtered back projection. The interpolation errors introduced by converting polar sampling of the Central Slices to Cartesian sampling create weird patterns in the output of the final 2D IFFT.
     
    Matt J, Oct 1, 2010
    #16
  17. Dinesh Bhati

    Dinesh Bhati Guest

    Ideally what should be the top view of FFT of an image with a line at a certain angle in it.

    should it be series of concentric ellipses centered at the origin, where edge of ellipse can be treated as negative lobes of sinc function.These ellipses will have one long major axis and a very short minor axis orientation being dependent on the orientation of line in the image.

    If it is so, Can we get this ideal FFT using the FFT function of MATLAB.
     
    Dinesh Bhati, Oct 3, 2010
    #17
  18. Dinesh Bhati

    Matt J Guest

    ====

    If by a "line" you mean a thin rectangle, then the continuous Fourier Transform will be the rotation of a function

    F(wx,wy) = sinc(A*wx)*sinc(B*wy)

    where wx and wy are frequency variables and A and B depend on the dimensions of the rectangle. The FFT will approximate this function to some degree depending on your sampling fineness.
     
    Matt J, Oct 3, 2010
    #18
  19. Perhaps, this could help you:
    A comparative image analysis of discrete radial Fourier transforms
    Guojun Zhanga, Bo Lia, Bo Fub, Corresponding Author Contact Information, E-mail The Corresponding Author, Li Lib and Gaoxiang Liub
     
    sairam Geethanath, Oct 19, 2010
    #19
  20. Hello,

    I'm working in the field of image reconstruction and I have the same problem as Dinesh Bhati.
    My data are in the form of a sinogram (radon transformation). The Fourier slice theorem is derived by taking the one-dimensional Fourier transform of a parallel projection (a column in the sinogram) and noting that it is equal to a slice of the two-dimensional Fourier transform of the original object.

    It follows that given the projection data, it should then be possible to estimate the object by simply performing the 2D inverse Fourier transform.

    I tried to implement an "nearest neighbour interpolation" - although I know, that there will be a bad reconstructed image and lots of artefacts.
    But the image does not look like the original one at all. I also tried to use the griddata() function with the same bad results.

    Does anyone already has worked with "Direct Fourier Reconstruction" and can help me?

    best regards
     
    Dominik Richter, Nov 25, 2010
    #20
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.