Functions

K:/Projects/scplusplus/gpl_releases/frtw/src/radon.c File Reference

Radon Transforms Source for the FRTW C Library. More...

#include <nttw/image.h>
#include <nttw/prime.h>
#include <nttw/number32.h>
#include "radon.h"
#include "array_complex.h"
Include dependency graph for radon.c:

Go to the source code of this file.

Functions

nttw_integer getIsum (nttw_integer *radon, const size_t n)
 Returns the Isum of the FRT space.
double getIsum_double (double *radon, const size_t n)
 Returns the Isum of the FRT space as a double.
nttw_integer getIsum_Integer (nttw_integer *radon, const size_t n, const nttw_integer modulus)
 Returns the Isum (modulo the given modulus) of the FRT space.
void drt (const nttw_integer *field, nttw_integer *bins, const int p)
 The Discrete Radon Transform (DRT) of Matus & Flusser, 1993 for 2D arrays. O(n^3).
void drt_dyadic (const nttw_integer *field, nttw_integer *bins, const int n)
 The Dyadic Discrete Radon Transform (DRT) of Hsung et al, 1996 for 2D arrays. O(n^3).
void drt_blockcopy (nttw_integer *datain, nttw_integer *dataout, const int p)
 The Discrete Radon Transform (FRT) of Matus & Flusser, 1993 for 2D arrays. This function uses the intelligent block copy method developed by Imants Svalbe.
void frt (nttw_integer *field, nttw_integer *bins, const int p)
 The Fast Radon Transform (FRT) of Matus & Flusser, 1993 for 2D arrays. Fourier Slice Theorem version. Complexity is linear logarithmic in time (same as a 2D FFT). This is for prime lengths.
void frt_double (double *field, double *bins, const int p)
 The Fast Radon Transform (FRT) of Matus & Flusser, 1993 for 2D arrays. Fourier Slice Theorem version. Complexity is linear logarithmic in time (same as a 2D FFT). This is for prime lengths.
void frt_dyadic (nttw_integer *field, nttw_integer *bins, const int n)
 The Dyadic Fast Radon Transform (FRT) of Hsung et al, 1996 for 2D arrays. Fourier Slice Theorem version. Complexity is linear logarithmic in time (same as a 2D FFT).
void frt_dyadic_double (double *field, double *bins, const int n)
 The Dyadic Fast Radon Transform (FRT) of Hsung et al, 1996 for 2D arrays. Fourier Slice Theorem version. Complexity is linear logarithmic in time (same as a 2D FFT).
void frt_dyadic_signed (long *field, long *bins, const int n)
 The Dyadic Fast Radon Transform (FRT) of Hsung et al, 1996 for 2D arrays. Fourier Slice Theorem version. Complexity is linear logarithmic in time (same as a 2D FFT).
nttw_integer idrt (nttw_integer *bins, nttw_integer *result, const int p)
 The Inverse Discrete Radon Transform (iDRT) of Matus & Flusser, 1993 for 2D arrays. O(n^3).
nttw_integer idrt_blockcopy (nttw_integer *datain, nttw_integer *dataout, const int p)
 The Inverse Discrete Radon Transform (iDRT) of Matus & Flusser, 1993 for 2D arrays. This function uses the intelligent block copy method developed by Imants Svalbe. Note m=0 and m=p projections are interchanged in comparision to other DRT functions!
nttw_integer ifrt (nttw_integer *bins, nttw_integer *result, const int p, const int norm)
 The Inverse Fast Radon Transform (iFRT) of Matus & Flusser, 1993 for 2D arrays. Fourier Slice Theorem version. Complexity is linear logarithmic in time (same as a 2D FFT).
double ifrt_double (double *bins, double *result, const int p, const int norm)
 The Inverse Fast Radon Transform (iFRT) of Matus & Flusser, 1993 for 2D arrays. Fourier Slice Theorem version. Complexity is linear logarithmic in time (same as a 2D FFT).
nttw_integer ifrt_signed (nttw_integer *bins, long *result, const int p, const int norm)
 The Inverse Fast Radon Transform (iFRT) of Matus & Flusser, 1993 for 2D arrays. Fourier Slice Theorem version. Complexity is linear logarithmic in time (same as a 2D FFT).
nttw_integer ifrt_dyadic (nttw_integer *bins, nttw_integer *result, const int n, const int norm)
 The Inverse Dyadic Fast Radon Transform (FRT) of Hsung et al, 1996 for 2D arrays. Fourier Slice Theorem version. Complexity is linear logarithmic in time (same as a 2D FFT).
double ifrt_dyadic_double (double *bins, double *result, const int n, const int norm)
 The Inverse Dyadic Fast Radon Transform (FRT) of Hsung et al, 1996 for 2D arrays. Fourier Slice Theorem version. Complexity is linear logarithmic in time (same as a 2D FFT).
nttw_integer ifrt_dyadic_signed (nttw_integer *bins, long *result, const int n, const int norm)
 The Inverse Dyadic Fast Radon Transform (FRT) of Hsung et al, 1996 for 2D arrays. Fourier Slice Theorem version. Complexity is linear logarithmic in time (same as a 2D FFT).
nttw_integer ifrt_dyadic_signed2 (long *bins, long *result, const int n, const int norm)
 The Inverse Dyadic Fast Radon Transform (FRT) of Hsung et al, 1996 for 2D arrays. Fourier Slice Theorem version. Complexity is linear logarithmic in time (same as a 2D FFT). Complete signed array version.
void getSlice (int m, fftw_complex *data, fftw_complex *slice, const int size)
 Extracts the slice at slope m within the FFT space given by data.
void getSlice_Perp (int s, fftw_complex *data, fftw_complex *slice, const int size)
 Extracts the slice at (perp) slope s within the FFT space given by data.
void setSlice (int m, fftw_complex *data, fftw_complex *slice, const int size)
 Sets the slice at slope m within the FFT space given by data.
void setSlice_Perp (int s, fftw_complex *data, fftw_complex *slice, const int size)
 Sets the slice at (perp) slope s within the FFT space given by data.
void dyadic_oversample (nttw_big_integer *data, const int n)
 Constructs the oversample filter required to make FFT space isotropic for dyadic sizes.
void dyadic_1D_filter (nttw_big_integer *data, const int n)
 Constructs the 1D oversample filter required to make FFT space isotropic for dyadic sizes.
void filter_oversampling (fftw_complex *fftSpace, nttw_big_integer *samples, const int n)
 Filters the oversampling within the FFT space for dyadic sizes given by the filter.

Detailed Description

Radon Transforms Source for the FRTW C Library.

FRTW Radon Library

This header provides all the discrete operations related to the Radon Transform. It includes the Discrete Radon Transform (FRT) as well as other discretized versions of the Radon Transform.

This file is part of FRTW Library.

FRTW is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

FRTW is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with FRTW. If not, see <http://www.gnu.org/licenses/>.

Author:
Shekhar S. Chandra, 2008-9

Definition in file radon.c.