CT Reconstruction: build a voxel volume from X-ray projections

Turn a set of X-ray projections into a voxel volume with CT Reconstruction

4 min readVideo
In the app
  • CTCT Reconstruction

Loads from YouTube (Google) when you press Play

CT Reconstruction builds a voxel volume from the raw X-ray projections (radiographs) that a CT scanner takes while the object turns in front of the detector. Its tooltip reads "Reconstruct 3D voxel object from a number of CT projection images (radiographs)." Use it when you have the projections themselves. If you already have reconstructed slices (DICOM, a TIFF stack or a RAW file), you do not need this tool: open them with Open DICOMs, Open RAW Voxels or Open Voxels From TIFF.

Where the Tool Is Available

  • Windows and Linux builds with CUDA support only. The reconstruction runs on an NVIDIA GPU (CUDA). The macOS app and the web version do not include it, so you will not find it in their ribbon.
  • On a computer without a usable CUDA GPU the button is unavailable, and its tooltip says CUDA is not available.
  • Where it is available, the button is CT › CT Reconstruction (group Generation). The Windows installer of MeshInspector 2.5.9.275 includes the tool; on a Windows computer with an NVIDIA GPU (checked with an NVIDIA T4) the app finds CUDA at start.

What You Need

  • Scans: a folder with the projections as TIFF files (.tif or .tiff) with 16-bit values, one file per angle. The tool orders the files by the last number in their names, read as a number (so scan_9 comes before scan_10; zero-padding is not needed), and assumes they cover one full turn (360°) in equal steps: with 720 files, each step is 0.5°. Other files in the folder are ignored.
  • LuT: a lookup-table file (*.lut) that converts the raw 16-bit detector values to density: a text file with 65,536 numbers, one for each possible value. A file with fewer numbers is rejected.
  • The geometry of your scanner: source and detector distances, detector shift, tilt and pixel size. These values come from your scanner set-up, not from the images.

Panel Fields

Field What it means
Scans Folder with the projections; Open picks a folder
LuT The *.lut file; Open picks it
X-Ray source › Distance to center Distance from the X-ray source to the rotation axis
X-Ray source › Distance to detector Distance from the X-ray source to the detector
Detector › Horizontal shift Horizontal shift of the detector (where the rotation axis falls on it)
Detector › Vertical shift Vertical shift of the detector
Detector › In plane rotation Tilt angle of the detector in its own plane
Detector › Pixel size Size of one detector pixel
Rotation object › Resolution Size of the result in voxels along X, Y and Z
Rotation object › Voxel size Size of one voxel of the result
Rotation direction CCW uses the files in name order, CW in reverse order; pick the one that matches the turn of your scanner

Reconstruct a Volume

  1. Click CT › CT Reconstruction.
  2. Next to Scans, click Open and choose the folder with the projections.
  3. Next to LuT, click Open and choose the *.lut file.
  4. Enter the scanner geometry, the Resolution and Voxel size of the result, and the Rotation direction.
  5. Click Run (or press Enter). The progress bar shows Back-projecting, then Convert result.

Result

A new voxel object named Reconstructed is added to the scene and selected, the view zooms to it, and the panel closes. The very few extreme values at both ends of the value range (0.002% of the voxels at each end) are clipped, and an iso-value is set automatically so you see a surface at once.

Next steps: adjust the surface with Change ISO, look inside with Volume Rendering or Voxels Slice, and turn the volume into a mesh with Voxels to Mesh. For what a voxel object is, see Voxels.

Error Messages

Message Cause
No scans path provided The Scans field is empty
Scan path is not present directory The Scans path is not an existing folder
No scans found The folder has no .tif or .tiff files
LuT file is not found The LuT field is empty or the file does not exist
LuT file is inconsistent The *.lut file has fewer than 65,536 numbers or cannot be read
Cannot load tiff file: … One of the projections cannot be read as a 16-bit TIFF
Inconsistent distance to center Distance to center is 0 or less. The geometry fields start at 0, so fill them in before Run
Inconsistent distance to detector Distance to detector is not larger than Distance to center
Inconsistent pixel size Pixel size is 0 or less
Inconsistent scan resolution The projections are smaller than 2 × 2 pixels
Inconsistent volume resolution One of the three Resolution values is 0 or less
Inconsistent voxel size Voxel size is 0 or less
GPU don't have enough memory The result does not fit into the memory of the graphics card: lower the Resolution

Customize Consent Preferences

We use cookies and similar technologies, such as local storage. You will find detailed information about all of them under each consent category below.

To learn more about how Google processes personal information, visit: Google privacy policy

Always Active