Skip to content

hanyoseob/matlab-with-mex-parallel-CT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parallelbeam CT

Reference

Computed Tomography: Principles, Design, Artifacts, and Recent Advances, 3rd.

The beginners, who is unfamiliar about the CT concept and principle, read Chapter 3. Image Reconstruction.

Abstract

X-ray computed tomography (CT) has experienced an explosion of technological development for a quarter century. Six years after the second edition of Computed Tomography, this third edition captures the most recent advances in technology and clinical applications. New to this edition are descriptions of iterative reconstruction, statistical reconstruction, methodologies used to model the CT systems, and the searching methodologies for optimal solutions. A new section on 3D printing introduces approaches by early adopters in the area. Also added is a description and discussion of the size-specific dose estimate, an index that attempts to more accurately reflect the dose absorption of specific-sized patients. The coverage of dual-energy CT has been significantly expanded to include its background, theoretical development, and clinical applications.

Installation

  • Before execute demo_parallelbeam_ct.m, execute mex_compile.m to compile the mex files.

Execution Language

  • If execute the simulation based on MATLAB ver.,

      param.device='matlab';
    
  • If execute the simulation based on C/C++ ver.,

      param.device='clang';
    

Projection

  • Projection operator is implemented based on Ch.3 Equations (3.5) & (3.6).

  • Ray-driven method is applied to Projection operator.

    • Ch.3 Equation (3.5): Rotated coordinate X-ray CT system (Counterclockwise).

      • eq-t-axis
      • eq-s-axis
    • Ch.3 Equation (3.6): Line integration along X-ray.

      • eq-line-integration

Filtering

  • Filtering operator is implemented based on Ch.3 Equations (3.21) & (3.29) & (3.30).

    • Ch.3 Equation (3.29): Filtering kernel
      • eq-filtering-kernel
  • Filtering is performed by convolution ver. using Ch.3 Equation (3.30) and FFT ver. using Equation (3.21).

    • Ch.3 Equation (3.30): convolution ver.
      • eq-convolution
    • Ch.3 Equation (3.21): FFT ver.
      • eq-FFT

Backprojection

  • Backprojection operator is implemented based on Ch.3 Equation (3.22).

  • Pixel-driven method is applied to backprojection operator.

    • Ch.3 Equation (3.22): Backprojection
      • eq-backprojection

Parameters

  • X-ray CT System parameters

    1. dAngle [degree; (float, +)] : Rotational range of X-ray source
    2. nView [element; (int, +)] : The number of views
    3. dView [degree; (float, +)] : The step of view
    4. DSO [mm; (float, +)] : Distance from Source to Object
    5. DSD [mm; (float, +)] : Distance from Source to Detector
  • X-ray detector parameters

    1. dDctX [mm; (float, +)] : Detector pitch
    2. nDctX [element; (int, +)] : The number of detectors
    3. dOffsetDctX [float; (float, +-)] : Index of shifted detectors
    4. compute_filtering ['convolution', 'fft'; (string)] : Filtering method
  • Object parameters

    1. dImgX, dImgY [mm; (float, +)] : Pixel resolutions
    2. nImgX, nImgY [element; (int, +)] : The number of pixels
    3. dOffsetImgX, dOffsetImgY [element; (float, +-)] : Index of shifted image

Results

alt text

  • The results were reconstructed by hyper parameters below.

  • X-ray CT System parameters

    1. dAngle [degree; (float, +)] : 360
    2. nView [element; (int, +)] : 360
    3. dView [degree; (float, +)] : 1
    4. DSO [mm; (float, +)] : 400
    5. DSD [mm; (float, +)] : 800
  • X-ray detector parameters

    1. dDctX [mm; (float, +)] : 0.7
    2. nDctX [element; (int, +)] : 400
    3. dOffsetDctX [element; (int, +-)] : 30
    4. compute_filtering ['convolution', 'fft'; (string)] : 'fft'
  • Object parameters

    1. dImgX, dImgY [mm; (float, +)] : 1, 1
    2. nImgX, nImgY [element; (int, +)] : 256, 256
    3. dOffsetImgX, dOffsetImgY [element; (float, +-)] : 0, 0

Execution Time

  • Execution time for MATLAB ver.

    Operation Execution time Remark
    Projection about 1000 sec ray-driven
    (a) Filtering about 0.025 sec convolution
    (b) Filtering about 0.05 sec zero-padding + FFT
    Backprojection about 300 sec pixel-driven
  • Execution time for C/C++ ver.

    Operation Execution time Acceleration
    Projection about 0.500 sec x2000
    (a) Filtering about 0.05 sec x0.5
    (b) Filtering about 0.01 sec x5
    Backprojection about 1 sec x300