Cone Beam Reconstruction
The Cone Beam Reconstruction plugin reconstructs 3D volumetric images from cone-beam computed tomography (CBCT) projection data. Using filtered back-projection, it transforms a series of 2D X-ray projections acquired at different angles into a 3D volume representation of the scanned object.
Overview
Cone-beam CT differs from conventional fan-beam CT by using a cone-shaped X-ray beam that illuminates a 2D detector panel, enabling faster acquisition of volumetric data. This geometry is common in:
- Industrial CT: Non-destructive testing, metrology, quality inspection
- Dental CBCT: Maxillofacial imaging, implant planning
- Micro-CT: Small animal imaging, materials research
- C-arm systems: Interventional radiology, surgical guidance
The plugin implements the Feldkamp-Davis-Kress (FDK) algorithm with configurable geometry parameters, filtering options, and post-processing controls to optimize reconstruction quality for your specific imaging setup.
The plugin supports circular cone-beam trajectories reconstructed with FDK. It does not currently reconstruct fan-beam, parallel-beam, planar, or helical trajectories, and it does not provide ART or other iterative reconstruction, multi-ROI reconstruction, or automatic angular-drift correction. A circular cone-beam acquisition is also mathematically incomplete away from the central plane; larger cone angles can therefore produce axial intensity and shape artifacts that post-processing cannot fully remove.
Accessing the Plugin
- Navigate to the Advanced ribbon tab
- Click Cone Beam Reconstruction in the Plugins section
- The reconstruction controls panel opens in the task dock
Input Projections
The plugin supports two sources for projection data:
| Source | Description |
|---|---|
| Active Volume | Use the currently loaded volume object as input projections. The volume should contain the projection stack with each slice representing one projection image. |
| From Disk | Import projection images directly from files. Opens a file selection dialog to choose multiple image files representing the projection series. |
When selecting From Disk, a file manager dialog appears where you can:
- Select multiple projection image files
- Configure axis inversion (X, Y, Z) if projections need reorientation
- Apply intensity inversion if contrast is reversed
The line edit below the dropdown displays the number of selected files and their directory location.
When the selected projection folder contains phoenix datos-style .pca or .pcr metadata, Volvicon reads the clear scanner defaults automatically: source/detector geometry, detector pixel size, scan arc, FreeRay scatter threshold, sharpening settings, and local dark/bright calibration image paths when the files can be found. Verify the values before reconstructing; vendor-specific coded fields such as reconstruction kernel and beam-hardening preset are not inferred automatically.
Common Parameters
These fundamental geometry parameters define the cone-beam CT acquisition setup:
| Parameter | Description | Default |
|---|---|---|
| Distance from source to detector (mm) | Distance from the X-ray source to the detector plane. Affects magnification and geometry of the scan. | 815.19 |
| Distance from source to object (mm) | Distance from the X-ray source to the object isocenter (rotation axis). Defines the radius of the scan trajectory. | 153.48 |
| Detector pixel size X (mm) | Physical size of a detector pixel along the horizontal axis. | 0.4 |
| Detector pixel size Y (mm) | Physical size of a detector pixel along the vertical axis. | 0.4 |
| X-ray scan start angle (°) | Starting angle of the X-ray scan. Defines the initial gantry position. | 0 |
| X-ray scan total angle (°) | Total angular range covered by the scan. Use 360° for a full scan, less for short-scan acquisitions. | 360 |
| Rotation direction | Direction of gantry rotation during acquisition: Clockwise or Anti-clockwise. | Anti-clockwise |
These values should match your scanner's physical configuration. Consult your scanner documentation or calibration data for accurate geometry parameters. Incorrect values will result in blurred or distorted reconstructions.
Projection Parameters
Advanced parameters for correcting detector and source misalignments. These are collapsed by default and only needed when fine-tuning reconstruction quality.
Automatic Scan Geometry Correction
| Parameter | Description | Default |
|---|---|---|
| Auto-detect horizontal detector offset (center of rotation) | Automatically estimate the horizontal detector offset directly from the scan data by registering opposing projections (180° apart). Corrects center-of-rotation misalignment without phantom pre-scans. | Off |
When enabled, the estimated value replaces the manual horizontal detector offset. If the estimation fails (for example, the scan arc is below 180° or the projections do not correlate reliably), the manual value is used and a warning is written to the application log.
A misaligned rotation axis is the most common cause of blurred or "double-edged" reconstructions. Enable auto-detection whenever the exact detector offset is unknown or the scanner calibration is stale. The estimation requires a scan arc of at least 180° and works best when the object is fully visible in the projections.
Detector Offsets
| Parameter | Description | Default |
|---|---|---|
| Detector center offset horizontal (mm) | Horizontal offset of the detector center relative to the rotation axis. Use to correct for detector misalignment. | 0 |
| Detector center offset vertical (mm) | Vertical offset of the detector center relative to the rotation axis. Use to correct for detector misalignment. | 0 |
Source Offsets
| Parameter | Description | Default |
|---|---|---|
| Source center offset horizontal (mm) | Horizontal offset of the X-ray source relative to the rotation axis. | 0 |
| Source center offset vertical (mm) | Vertical offset of the X-ray source relative to the rotation axis. | 0 |
Detector Tilt Angles
| Parameter | Description | Default |
|---|---|---|
| Out of plane angle (°) | Rotation of the detector around the X axis (out-of-plane tilt). Use to correct for detector tilt. | 0 |
| In plane angle (°) | Rotation of the detector around the Z axis (in-plane tilt). Use to correct for detector tilt. | 0 |
Displaced Detector
Enable this option when using off-centered (displaced) detector panels, common in systems designed to extend the effective field of view.
| Parameter | Description | Default |
|---|---|---|
| Enable displaced detector | Activate special handling for off-centered detector panels. | Off |
| Angular gap threshold (°) | Angular gap threshold for detecting short scans. Above this value, Parker short-scan weighting is applied. | 20 |
Parker short-scan weighting is always applied automatically when the scan arc is below 360° (detected via the angular gap threshold), regardless of the displaced detector option. For full 360° scans it has no effect. This prevents the doubly-sampled angular region of a short scan from being weighted twice.
Preprocessing Parameters
Preprocessing operations improve projection quality before reconstruction. Each correction can be enabled independently; Volvicon applies the corrections you enable automatically and combines them to produce the best result for your data. Enable only the corrections your acquisition actually needs.
The corrections in this section are optional and off by default. Turn them on one at a time and review the result, so you can identify which correction addresses the artifact you are seeing without over-processing the data.
Projection Skip
| Parameter | Description | Range | Default |
|---|---|---|---|
| Projection skip | Number of projections to skip between used projections. 0 uses all projections, 1 uses every 2nd projection, 2 uses every 3rd, etc. | 0+ | 0 |
Projection skip is intended for testing and parameter tuning only. While it significantly speeds up reconstruction by reducing the number of projections processed, it also reduces angular sampling and degrades reconstruction quality. Skipping projections introduces undersampling artifacts, including streaks and loss of fine detail.
Use cases:
- Quick parameter previews during workflow development
- Fast iteration when tuning geometry or filter settings
- Preliminary reconstructions on large datasets
Do NOT use projection skip for final production reconstructions. Always use all available projections (skip = 0) for clinical, quality inspection, or publication-quality results.
Projection Smoothing
| Parameter | Description | Options | Default |
|---|---|---|---|
| Smoothing level | Apply smoothing to projection images before reconstruction. Reduces high-frequency noise while attempting to preserve edges. | Off, Low, Medium, High | Off |
- Off: No smoothing applied
- Low: Light smoothing – recommended for most cases
- Medium: Moderate smoothing – good balance for noisy data
- High: Strong smoothing – maximum noise reduction but may soften details
Smoothing reduces noise but can blur fine structures. Start with Low or Medium settings. If you need heavy smoothing, consider whether your acquisition parameters (exposure time, detector gain) can be improved to reduce noise at the source.
Intensity Normalization
| Parameter | Description | Options | Default |
|---|---|---|---|
| Normalization mode | Normalize projection intensities for consistent attenuation values across the dataset. | Off, Maximum, Air Peak, Fixed | Off |
- Off: No normalization applied
- Maximum: Scale all projections to the maximum intensity value found
- Air Peak: Automatically detect the air (unattenuated beam) peak of the intensity histogram and normalize to it. More robust than Maximum against hot pixels and bright outliers.
- Fixed: Use a relative position in the intensity range for normalization (configurable through the scripting API)
Intensity normalization is useful when projections have varying brightness levels due to source fluctuations, detector drift, or inconsistent acquisition settings. It ensures uniform attenuation scaling across all projections.
Speckle Removal
| Parameter | Description | Options | Default |
|---|---|---|---|
| Speckle removal | Remove isolated detector defects (hot/dead pixels) that appear as bright or dark spots in projections. | Off, Single Pixel, Multi Pixel | Off |
- Off: No speckle removal
- Single Pixel: Strict mode – removes only extreme single-pixel outliers
- Multi Pixel: Relaxed mode – handles larger defective pixel regions
Speckle removal is a corrective filter for defective detector pixels. For best results, use proper detector calibration (flat-field correction) to prevent systematic defects. Speckle removal should be used as a supplement, not a replacement, for good calibration.
Ring Artifact Reduction
| Parameter | Description | Options | Default |
|---|---|---|---|
| Ring artifact reduction | Reduce concentric ring artifacts caused by systematic detector pixel variations. These appear as circles centered on the rotation axis. | Off, Low, Medium, High | Off |
- Off: No ring artifact reduction
- Low: Removes narrow rings (single-pixel detector defects)
- Medium: Removes rings of moderate width
- High: Removes wide rings (clusters of defective detector pixels)
Ring artifacts occur when detector pixels have non-uniform gain or offset: the same pixel is wrong in every projection, which back-projects to a circle around the rotation axis. Ring artifact reduction identifies this static per-pixel pattern and removes it from the projections without blurring the rotating object, so material features are preserved. Higher levels remove wider ring structures.
Ring artifact reduction targets the same fixed detector-pattern errors as flat-field correction. Use it to remove residual rings that remain after detector calibration, or the full ring pattern when no calibration images are provided.
Beam Hardening Correction
| Parameter | Description | Options | Default |
|---|---|---|---|
| Beam hardening preset | Correct cupping artifacts from polychromatic X-ray beam hardening. Lower-energy photons are absorbed more in outer regions, making the center appear brighter (cupping). | Off, Low, Medium, High | Off |
- Off: No beam hardening correction
- Low: Light polynomial correction for mild cupping
- Medium: Moderate correction for typical cupping artifacts
- High: Strong correction for severe cupping (thick or high-Z materials)
Beam hardening is a physical phenomenon in polychromatic X-ray imaging. As the X-ray beam passes through the object, lower-energy photons are preferentially absorbed, "hardening" the beam (increasing average energy). This causes non-linear attenuation and cupping artifacts. Beam hardening correction applies polynomial compensation based on water-equivalent thickness.
Logarithm Conversion
| Parameter | Description | Default |
|---|---|---|
| Enable logarithm conversion | Convert raw detector intensities to attenuation values using logarithmic transformation: attenuation = -log(I / I0). | On |
Enable this if your projections are raw transmission values (detector intensity measurements). Disable if projections are already logarithmized attenuation data.
The unattenuated intensity I0 is estimated automatically from the air peak of the projection histogram. This makes the estimate robust against saturated or hot detector pixels, which would inflate a maximum-based estimate and shift all attenuation values by a constant offset.
Most CBCT systems output raw detector intensities (I), which must be converted to attenuation values (-log(I/I0)) for reconstruction. If your data is already preprocessed as attenuation or "sinogram" data, disable this option to avoid double logarithm.
Scatter Correction
Enable scatter correction to reduce contrast loss and cupping caused by scattered X-ray radiation.
| Parameter | Description | Default |
|---|---|---|
| Enable scatter correction | Apply scatter radiation correction. X-ray scatter adds background signal that degrades image quality. | Off |
| Parameter | Description | Range | Default |
|---|---|---|---|
| Scatter air threshold | Detector value threshold for identifying air regions. Pixels above this value are considered air for scatter estimation. | 0–65535 | 32000 |
| Scatter-to-primary ratio | Estimated ratio of scatter to primary radiation. Depends on object size and beam energy. | 0.0–0.3 | 0.0 |
Scatter correction requires careful tuning of the air threshold and scatter-to-primary ratio. Incorrect values can introduce artifacts. Typical scatter-to-primary ratios range from 0.02 (small objects, high energy) to 0.15 (large objects, low energy). Start with conservative values and increase gradually.
The air threshold is defined in raw detector counts and must be set slightly below the air (free-ray) gray value of your projections. Detectors delivering full 16-bit values typically need 30000–40000; systems that store lower ranges need correspondingly lower values (for example, phoenix datos|x acquisitions record the free-ray value in the .pca parameter file, often only a few hundred to a few thousand counts).
Intensity Offset Correction
| Parameter | Description | Default |
|---|---|---|
| Enable intensity offset correction | Subtract a constant offset/bias from all projection intensities (percentage of maximum detector intensity). | Off |
| Parameter | Description | Range | Default |
|---|---|---|---|
| Intensity offset bias (%) | Percentage of maximum intensity to subtract from projections. Typical starting values: 0.5–2.0%. Higher values (up to 5%) may be used but can cause negative intensities and streak artifacts. | 0.0–100.0 | 0.0 |
This correction removes DC offsets in detector readings (e.g., from dark current or electronic bias). Use small values and inspect reconstructions; if streaks or negative values appear, reduce the bias.
Too large an offset bias can introduce negative intensities and streak artifacts in the reconstruction. Start with 0.5–2% and increase slowly while monitoring results. Prefer detector calibration (flat-field correction) over using large offset biases.
Flat-field Correction
Flat-field correction removes systematic detector artifacts using calibration images. This normalizes detector response across all pixels, compensating for gain variations and fixed-pattern noise.
Flat-field correction requires two calibration images:
- Dark Field: Detector response with no X-ray exposure (captures dark current and fixed noise)
- Bright Field: Detector response to uniform X-ray illumination without any object (captures pixel-wise gain variations)
Corrected projection = (Raw - Dark) / (Bright - Dark)
| Parameter | Description | Format |
|---|---|---|
| Dark field image path | Path to the dark field calibration image. | Image file (TIFF, PNG, etc.) |
| Bright field image path | Path to the bright field (flat field) calibration image. | Image file (TIFF, PNG, etc.) |
Flat-field images should match the resolution, detector mode, gain, and exposure conditions of the projection images. Volvicon detects calibration cells whose bright-minus-dark gain is invalid or nearly zero and interpolates those corrected samples from valid neighboring detector cells. This prevents division by a small calibration denominator from creating extreme rays in the reconstruction.
Acquire dark field and bright field images using the same detector settings (gain, exposure time) as your projection data. Re-acquire calibration images periodically to account for detector drift over time.
Reconstruction Parameters
Filter settings that control the reconstruction algorithm behavior:
| Parameter | Description | Range | Default |
|---|---|---|---|
| Truncation correction | Fraction of the detector width feathered to compensate for truncated projections. 0 disables correction; higher values feather a wider region. | 0.0–1.0 | 1.0 |
| Filter | Apodization window applied to the ramp filter of the filtered back-projection. | Ram-Lak, Shepp-Logan, Hann, Hamming | Ram-Lak |
| Cut frequency | Cut frequency of the selected filter. Higher values preserve more high-frequency detail (sharper but noisier), lower values increase smoothing (softer but cleaner). Set to 0 to use the pure ramp filter without windowing. | 0.0–1.0 | 0.0 |
Reconstruction Filter Selection
The ramp filter of the filtered back-projection amplifies high frequencies, which makes the reconstruction sharp but sensitive to noise. Windowing the ramp with an apodization filter trades a small amount of resolution for noise suppression:
- Ram-Lak (sharpest): The truncated ramp filter. Maximum resolution, most sensitive to noise. Best for low-noise, high-dose acquisitions.
- Shepp-Logan: Slight noise reduction with minimal resolution loss. A good default for typical industrial CT data with moderate noise.
- Hann (smoothest): Strongest noise suppression, visibly softer result. Use for very noisy or low-dose data.
- Hamming: Between Shepp-Logan and Hann.
The cut frequency controls where the window rolls off: 1.0 applies the window over the full frequency range, smaller values cut off earlier (more smoothing). At 0 the window is disabled and the pure ramp filter is used regardless of the filter selection.
When the scanned object is larger than the detector's field of view, projections become truncated at the edges. This causes cupping artifacts and intensity errors in the reconstruction. The truncation correction parameter helps mitigate these effects by extrapolating the missing data.
Result Parameters
Post-processing options applied to the reconstructed volume:
Intensity and Cropping
| Parameter | Description | Default |
|---|---|---|
| Auto invert intensity | Automatically invert the intensity of the reconstructed image. Enable if the reconstructed object appears with reversed contrast (bright areas appear dark). | Off |
| Auto crop | Automatically crop the reconstructed volume to remove empty background regions, resulting in a tighter bounding box around the object. | On |
| Crop margin | Margin in pixels to preserve around the cropped object. Only applies when auto crop is enabled. | 10 |
Intensity Clamping
Clamp reconstructed intensity values to remove outliers. This is useful for eliminating extreme values that can distort the histogram and reduce contrast in the displayed image.
Reconstruction artifacts, noise, or metal objects can produce extreme intensity values (very bright or very dark voxels). These outliers compress the useful intensity range in the histogram, reducing visible contrast. Clamping removes these extremes while preserving the main tissue/material distribution.
Low Clamping
| Parameter | Description | Default |
|---|---|---|
| Enable low clamping | Enable clamping of values below the specified threshold. Values below the threshold are set to the threshold value. | Off |
| Low clamping type | Absolute: Threshold is a fixed intensity value. Percental: The given percentage of the darkest voxels is clamped. | Absolute |
| Low clamping value | Threshold value. In Absolute mode, this is the actual intensity cutoff. In Percental mode, this is the percentage of the darkest voxels to clamp (e.g., 0.001% raises the darkest 0.001% of voxels). | 0.0 |
Typical use: Clamp negative values or background noise to zero. For example, set type to Absolute and value to 0.0 to remove all negative intensities.
High Clamping
| Parameter | Description | Default |
|---|---|---|
| Enable high clamping | Enable clamping of values above the specified threshold. Values above the threshold are set to the threshold value. | Off |
| High clamping type | Absolute: Threshold is a fixed intensity value. Percental: The given percentage of the brightest voxels is clamped. | Percental |
| High clamping value | Threshold value. In Absolute mode, this is the actual intensity cutoff. In Percental mode, this is the percentage of the brightest voxels to clamp (e.g., 0.001% removes the brightest 0.001% of voxels). | 0.001 |
Typical use: Remove bright artifacts or saturated regions. For example, set type to Percental and value to 0.001 to clamp the brightest 0.001% of voxels.
Start with high clamping in Percental mode (0.001–0.01%) to remove bright outliers. This often provides the most noticeable improvement in display contrast. Use low clamping in Absolute mode only if you observe significant negative values or dark artifacts.
Noise Reduction
Optional noise reduction filter applied to the reconstructed volume. When combined with sharpening, it suppresses noise that the unsharp mask would otherwise amplify.
| Parameter | Description | Options | Default |
|---|---|---|---|
| Noise reduction | Noise reduction filter applied to the reconstructed volume. | Off, Median, Gaussian, Edge-preserving | Off |
| Strength | Strength of the selected filter. | Low, Medium, High | Medium |
- Median: Removes speckle and impulse noise while preserving edges. The recommended choice when the reconstruction will be further processed (surface determination, segmentation, measurement), as it produces cleaner gradients without shifting edges.
- Gaussian: Uniform smoothing. Reduces all noise but also softens edges.
- Edge-preserving: Curvature-flow smoothing that reduces noise in homogeneous regions while keeping material boundaries sharp.
If you plan to run image processing on the reconstructed volume (surface extraction, defect analysis, measurements), enable Median noise reduction at Low or Medium strength. Median filtering suppresses the granular reconstruction noise that otherwise degrades downstream gradient-based operations, while keeping material edges in place.
Sharpening
Optional Unsharp Mask (USM) sharpening to enhance edge contrast and local detail in the reconstruction. Enable the Sharpening checkbox to activate these controls.
| Parameter | Description | Range | Default |
|---|---|---|---|
| Enable sharpening | Enable Unsharp Mask (USM) sharpening on the reconstructed volume. Sharpening can enhance edge contrast and local detail but may amplify noise. | - | On |
| Iterations | Number of times the sharpening operation is applied. More iterations increase sharpening strength but also processing time. | 1+ | 2 |
| Radius (pixels) | Radius of the local neighborhood used for sharpening. Larger radius affects broader features, smaller radius affects fine details. | 1+ | 3 |
| Contrast (%) | Sharpening amount expressed as a percentage. Higher values produce stronger sharpening. | 1–200 | 50 |
Sharpening enhances edges but also amplifies noise. Use conservative settings (low contrast %, few iterations) for noisy data, or combine sharpening with the Noise reduction filter. Over-sharpening can create "halo" artifacts around edges.
Histogram Contrast Windowing
| Parameter | Description | Range | Default |
|---|---|---|---|
| Histogram contrast windowing | Clip extreme outlier intensities (percentile-based) and stretch the remaining histogram over the full output range. | - | On |
| Margin (%) | Margin added on both sides of the contrast window, as a percentage of the window width. Prevents the clip from cutting tightly at the percentile bounds. | 0–50 | 5 |
This step improves the contrast distribution of the reconstructed volume by removing the few extreme voxels that would otherwise compress the useful gray value range. Disable it to preserve the unstretched gray value relations of the raw reconstruction (for example, when comparing reconstructions quantitatively).
The margin widens the window beyond the computed percentile bounds (clamped to the actual data range), so voxels just outside the window keep some differentiation instead of collapsing hard onto the window edges, which would otherwise pile up as spikes at the ends of the output histogram. Set the margin to 0 for the tightest possible contrast stretch.
Running Reconstruction
- Configure input: Select the projection source (Active Volume or From Disk)
- Set geometry parameters: Enter your scanner's geometry values in the Common Parameters section
- Configure preprocessing (optional): Expand Preprocessing Parameters to apply filters (smoothing, artifact reduction, beam hardening correction, etc.)
- Adjust advanced settings (optional): Expand Projection Parameters and Reconstruction Parameters for fine-tuning
- Configure output options: Set Result Parameters for intensity clamping, cropping, and sharpening preferences
- Click Reconstruct: The reconstruction process begins with a progress dialog
The reconstructed volume is automatically added to the project with a name derived from the input source (e.g., "OriginalName (Reconstructed)").
For a typical first reconstruction:
- Start with the defaults. Logarithm conversion is enabled for raw transmission projections; optional smoothing, speckle, ring, scatter, and beam-hardening corrections are off.
- Check the result quality
- If artifacts are present, enable specific preprocessing filters one at a time
- Use projection skip (e.g., skip=3) for fast parameter testing, then set skip=0 for final reconstruction
GPU Acceleration
Cone beam reconstruction can be accelerated on a supported NVIDIA GPU (via CUDA). The reconstruction automatically uses the GPU when one is available and falls back to the CPU otherwise, so no per-reconstruction setting is required.
This behavior is controlled globally from File → Preferences → General → Performance → GPU acceleration (NVIDIA CUDA):
- Automatic (default): use the GPU when a supported NVIDIA device is available; otherwise the CPU.
- CPU only: always reconstruct on the CPU.
- GPU (NVIDIA CUDA): prefer the GPU; automatically falls back to the CPU if no usable device is found or the GPU runs out of video memory.
GPU acceleration requires an NVIDIA Turing (RTX 20-series) or newer GPU (Ampere / RTX 30-series or newer recommended) and NVIDIA driver R610 or later; see System Requirements. On machines without a supported GPU or driver, reconstruction runs on the CPU exactly as before: the Preferences option is disabled with a tooltip explaining why, and the compute path used for each reconstruction (GPU or CPU) is recorded in the application log.
GPU acceleration does not change which parameters are available or how reconstruction works. The GPU and CPU paths use the same FDK algorithm and the same settings, with only minor floating-point differences in the result.
Reset to Default
Click Reset to Default to restore all parameters to their factory default values. This is useful when starting a new reconstruction workflow or troubleshooting unexpected results.
Workflow Examples
Example 1: Basic Reconstruction from Projection Files
- Click Cone Beam Reconstruction in the Advanced tab
- Select From Disk in the Projections dropdown
- In the file dialog, select all projection images (e.g., TIFF or DICOM series)
- Configure axis inversion if needed (check preview to verify orientation)
- Enter your scanner geometry:
- Source-to-detector distance
- Source-to-object distance
- Detector pixel size
- Scan angles and rotation direction
- Leave Preprocessing Parameters at defaults for first attempt
- Leave Projection Parameters at defaults unless you know your system has misalignments
- Enable Auto crop and Auto invert intensity in Result Parameters
- Enable High clamping (Percental, 0.001%) to remove bright outliers
- Click Reconstruct
- Review the reconstructed volume in the 3D view
Example 2: High-Quality Reconstruction with Preprocessing
Use this workflow when you need maximum quality and artifact suppression:
- Load projections (Active Volume or From Disk)
- Configure geometry parameters
- Enable preprocessing filters:
- Projection smoothing: Low or Medium (for noise reduction)
- Intensity normalization: Air Peak (for consistent attenuation)
- Speckle removal: Single Pixel (for isolated defects)
- Ring artifact reduction: Low or Medium (if rings are visible)
- Beam hardening correction: Medium (for typical cupping)
- Enable logarithm conversion: On (for raw detector data)
- Configure flat-field correction (if calibration images available):
- Select dark field image
- Select bright field image
- Set reconstruction parameters:
- Truncation correction: 1.0
- Filter: Shepp-Logan, Cut frequency: 1.0 (slight noise suppression), or Hann with cut frequency 0.5 for very noisy data
- Enable automatic geometry correction (if the exact detector offset is unknown):
- Auto-detect horizontal detector offset: On
- Configure result parameters:
- Auto crop: On
- High clamping: Percental, 0.001%
- Noise reduction: Median, Low or Medium strength
- Sharpening: On (Iterations=2, Radius=3, Contrast=50%)
- Click Reconstruct
Enabling multiple preprocessing filters increases reconstruction time. Use projection skip for parameter testing, then disable it (skip=0) for the final production reconstruction.
Example 3: Fast Parameter Testing
When testing geometry or filter parameters on large datasets:
- Set Projection skip to 3 or 5 (uses every 4th or 6th projection)
- Disable Auto crop for faster processing
- Disable Sharpening for faster processing
- Run reconstruction and check result quality
- Adjust parameters as needed
- For final reconstruction: Set projection skip back to 0 and re-enable desired post-processing
Always set projection skip to 0 for final reconstructions used in analysis, publication, or quality control. Skipped projections reduce angular sampling and introduce artifacts.
Example 4: Reconstructing from Loaded Volume Stack
- Load the projection stack as a volume (File → Import)
- Ensure the projection volume is the active volume
- Click Cone Beam Reconstruction
- Select Active Volume as the projection source
- Enter geometry parameters
- Click Reconstruct
Technical Background
Feldkamp-Davis-Kress (FDK) Algorithm
The plugin implements the FDK algorithm, the standard filtered back-projection method for cone-beam CT reconstruction. The algorithm:
- Pre-weights each projection by the cosine of the cone angle
- Filters projections row-by-row using a ramp filter (optionally windowed with the Ram-Lak, Shepp-Logan, Hann, or Hamming apodization filter)
- Back-projects filtered data along ray paths through the reconstruction volume
The FDK algorithm provides good image quality for circular scan trajectories when the cone angle is moderate. For very large cone angles or helical trajectories, more advanced algorithms may be required.
Geometry Conventions
The plugin uses standard cone-beam CT geometry conventions:
- Source: Point X-ray source emitting a cone-shaped beam
- Detector: Flat-panel detector perpendicular to the central ray
- Rotation axis: Vertical axis (Y) passing through the isocenter
- Angles: Measured from the initial gantry position, positive in the rotation direction
Troubleshooting
Blurred or Smeared Reconstruction
Possible causes:
- Incorrect geometry parameters (distances, pixel size)
- Wrong rotation direction (clockwise vs. anti-clockwise)
- Projection offsets not properly configured
Solutions:
- Verify geometry parameters match your scanner calibration data
- Check rotation direction and flip if necessary
- Enable Auto-detect horizontal detector offset to correct center-of-rotation misalignment automatically
- Verify projection offsets (detector center horizontal/vertical)
- Select a smoothing filter (Shepp-Logan or Hann) with a lower cut frequency for a smoother reconstruction (reduces noise but softens edges)
Ring Artifacts (Concentric Circles)
Cause: Detector pixel defects or gain variations create systematic errors that appear as rings centered on the rotation axis.
Solutions:
- Enable Ring artifact reduction (start with Low or Medium)
- Use Flat-field correction with properly acquired dark/bright field calibration images
- Enable Speckle removal (Single Pixel mode) to remove isolated defective pixels
- Check detector calibration – re-calibrate if rings persist
Ring artifacts are best prevented through proper detector calibration. Flat-field correction is the most effective solution. Ring artifact reduction filter is a corrective measure when calibration data is unavailable.
Cupping Artifacts (Brighter Center)
Cause: Polychromatic beam hardening – lower-energy X-rays are absorbed more in outer regions, making the center appear brighter.
Solutions:
- Enable Beam hardening correction (start with Medium preset)
- If cupping is severe, increase to High preset
- Verify truncation correction is enabled if object extends beyond field of view
- For very thick or high-Z materials, custom beam hardening coefficients may be needed
Some cupping may be normal for objects with varying density. Only apply beam hardening correction if the cupping is an artifact (e.g., uniform materials appearing non-uniform).
Streaking Artifacts
Possible causes:
- Insufficient angular sampling (too few projections or excessive projection skip)
- Highly attenuating materials (metal) creating photon starvation
- Detector saturation or clipping
Solutions:
- Disable or reduce Projection skip (set to 0 for full angular sampling)
- Increase number of acquired projections if possible
- Enable Scatter correction if scatter is significant
- Use High clamping to remove extreme bright values from metal artifacts
- Adjust acquisition parameters (exposure time, beam energy) if detector is saturating
Projection skip reduces angular sampling, which can cause streaking. Never use projection skip values > 0 for final reconstructions.
Noisy Reconstruction
Cause: Low X-ray dose, high detector noise, or insufficient projection counts.
Solutions:
- Enable Projection smoothing (Low or Medium)
- Select the Shepp-Logan or Hann reconstruction filter with a cut frequency between 0.5 and 1.0 (lower values = smoother)
- Enable Noise reduction (Median or Edge-preserving) in the Result parameters
- Disable Sharpening (sharpening amplifies noise)
- If possible, increase acquisition dose or detector exposure time
Reversed Contrast (Dark Object on Bright Background)
Cause: Intensity inversion during acquisition or preprocessing.
Solutions:
- Enable Auto invert intensity in Result Parameters
- Check Invert intensity option in input projection settings (From Disk mode)
- Verify logarithm conversion is correctly enabled/disabled based on data type
Reconstruction Too Dark or Bright
Possible causes:
- Histogram outliers compressing useful intensity range
- Incorrect window/level settings in viewer
Solutions:
- Enable High clamping (Percental, 0.001–0.01%) to remove bright outliers
- Enable Low clamping (Absolute, 0.0) to clamp negative values
- Adjust window/level after reconstruction using the Image tab tools
- Check that projection data has appropriate dynamic range
Flat or Low Contrast Result
Cause: Extreme intensity values compressing the useful data range.
Solutions:
- Enable Intensity clamping (both low and high)
- Use Percental high clamping at 0.001–0.01% to remove the brightest outliers
- Adjust window/level in the image viewer
- Check histogram to identify outliers
Speckled or "Salt and Pepper" Noise
Cause: Isolated detector defects (hot pixels, dead pixels).
Solutions:
- Enable Speckle removal (Single Pixel or Multi Pixel mode)
- Use Flat-field correction to calibrate detector response
- Enable Noise reduction (Median) in the Result parameters to remove residual speckle from the reconstructed volume
- Increase speckle threshold multiplier if too many good pixels are being removed
Isolated White Dots in Dark Voids
Isolated bright dots are usually extreme reconstructed values made conspicuous by the final 16-bit intensity scaling. Common acquisition-domain causes are hot or low-performing detector pixels, invalid dark/bright calibration cells, photon-starved rays, detector saturation, and values at or below zero before logarithm conversion. A ramp filter and optional sharpening amplify these high-frequency errors; their 3D back-projection can look like small bright spots on slices even when no post-processing filter is selected.
Collapsing a parameter section only hides its controls; it does not disable them. The factory defaults enable logarithm conversion, histogram windowing, auto-cropping, and sharpening. To test the closest available unprocessed result, explicitly disable histogram windowing, auto-cropping, and sharpening (and disable logarithm conversion only when the input is already attenuation data). Final conversion to the 16-bit output range is always performed.
Use this diagnostic order:
- Inspect the same detector coordinates across several raw projections. A stationary bright or dark cell indicates a detector or calibration defect.
- Supply current dark and bright fields acquired with the same detector mode and exposure settings.
- Enable Speckle removal → Single Pixel. Use Multi Pixel only when defects form clusters.
- Disable sharpening while diagnosing the source because it amplifies impulse noise.
- For photon-starved or saturated data, correct the acquisition where possible (exposure, tube voltage, filtration, and detector range). A volume filter cannot recover missing ray measurements.
- If a few valid but extreme reconstructed voxels remain, enable High clamping → Percental and begin at 0.001%. Confirm that dense inclusions or metal are not being clipped.
If the dots move with the object between projections rather than remaining at fixed detector coordinates, investigate real high-density inclusions, scatter, beam hardening, or incomplete cone-beam sampling instead of detector defects.
Missing or Truncated Object Regions
Cause: Object extends beyond detector field of view, causing projection truncation.
Solutions:
- Increase Truncation correction toward 1.0
- Verify detector is properly positioned to capture the full object
- Check projection offsets (detector center horizontal/vertical)
- Consider using displaced detector mode if appropriate for your geometry
Truncation correction can only compensate for moderate truncation. If large portions of the object extend beyond the detector, reconstruction quality will be limited. The best solution is to reposition the detector or reduce magnification.
Reconstruction Fails or Crashes
Possible causes:
- Insufficient memory for large datasets
- Incompatible projection data format
- Geometry parameter errors (e.g., source distance = 0)
Solutions:
- Enable Projection skip to reduce memory usage (for testing only)
- Verify all geometry parameters are non-zero and physically reasonable
- Check projection image format and bit depth
- Close other applications to free memory
- For very large datasets, use a workstation with more RAM
Scripting API
The cone beam reconstruction settings are exposed through the scripting API, allowing automated batch processing and integration into custom workflows.
Python Example
import ScriptingApi as api
import os
app = api.Application()
volume_operations = app.get_volume_operations()
# Helper function to create file paths with zero-padded numbering
def create_file_paths(directory, prefix, start, end, num_zeros, extension='.tif'):
file_paths = []
for i in range(start, end + 1):
padded_number = str(i).zfill(num_zeros)
filename = f"{prefix}{padded_number}{extension}"
full_path = os.path.join(directory, filename)
file_paths.append(full_path)
return file_paths
projection_files = create_file_paths(
directory="C:/Data/Projections",
prefix="XYZ_Object",
start=100001,
end=100999,
num_zeros=6
)
# Create reconstruction settings
cone_beam_reconstruction_settings = api.ConeBeamReconstructionSettings()
# Reconstruct from projection files on disk
reconstructed_volume = volume_operations.reconstruct_volume_using_cone_beam_reconstruction(
"", # volumeName: empty string when using files
projection_files, # fileNames: list of projection file paths
cone_beam_reconstruction_settings # reconstruction parameters
)
print(f"Reconstructed volume from files: {reconstructed_volume}")
Enum Types
The scripting API provides type-safe enums for all preprocessing modes:
| Enum Type | Values | Description |
|---|---|---|
api.CBR_ProjectionSmoothingLevel.Off | Off, Low, Medium, High | Projection smoothing intensity |
api.CBR_IntensityNormalizationMode.Off | Off, Maximum, AirPeak, Fixed | Intensity normalization method |
api.CBR_SpeckleRemovalMode.Off | Off, SinglePixel, MultiPixel | Speckle removal strategy |
api.CBR_RingArtifactReductionLevel.Off | Off, Low, Medium, High | Ring artifact correction strength |
api.CBR_BeamHardeningPreset.Off | Off, Low, Medium, High | Beam hardening correction preset |
api.CBR_ClampingType.Absolute | Absolute, Percental | Intensity clamping type |
api.CBR_ReconstructionFilter.RamLak | RamLak, SheppLogan, Hann, Hamming | Reconstruction (ramp apodization) filter |
api.CBR_NoiseReductionMode.Off | Off, Median, Gaussian, EdgePreserving | Post-reconstruction noise reduction filter |
api.CBR_NoiseReductionLevel.Low | Low, Medium, High | Noise reduction strength |
Batch Processing Example
Using the scripting API enables:
- Batch processing of multiple datasets with identical parameters
- Integration into automated QA/QC pipelines
- Reproducible reconstructions with version-controlled parameter sets
- Custom preprocessing workflows not available in the GUI
Best Practices and Recommendations
Acquisition Guidelines
- Projection count: Follow the scanner's sampling requirement for the detector width, magnification, and object diameter. Use every acquired projection for the final reconstruction.
- Detector calibration: Acquire dark and bright field images regularly for flat-field correction.
- Exposure settings: Balance dose, noise, and acquisition time. Higher dose reduces noise but increases scan time.
- Geometric accuracy: Calibrate scanner geometry periodically to ensure accurate distance and offset parameters.
Parameter Selection
- Start simple: Begin with default parameters and enable preprocessing only as needed.
- Enable one filter at a time: When troubleshooting artifacts, enable preprocessing filters individually to identify the most effective corrections.
- Use projection skip for testing only: Set projection skip to 3–5 for fast parameter testing, then always set to 0 for final reconstructions.
- Balance smoothing and detail: Low or Medium smoothing levels preserve detail while reducing noise. Avoid High unless noise is severe.
- Tune clamping carefully: Use Percental high clamping at 0.001–0.01% to remove bright outliers without affecting the bulk of the data.
Quality Control
- Visual inspection: Check for rings, cupping, streaks, and noise in reconstructed slices.
- Histogram analysis: Examine the intensity histogram for outliers or unexpected distributions.
- Quantitative metrics: If available, compare reconstructed values to known reference materials or calibration phantoms.
- Consistency: Use identical parameters for datasets that will be compared quantitatively.
Optimization for Large Datasets
- Memory management: Large reconstructions (> 2000³ voxels) require significant RAM. Close unnecessary applications.
- Test first: Use projection skip for initial parameter tuning, then run full reconstruction overnight.
- Incremental processing: For very large datasets, consider splitting into smaller angular ranges and combining afterward.
- Parallel processing: The reconstruction algorithm uses multi-threading. Ensure adequate CPU cores are available.
- GPU acceleration: On a supported NVIDIA GPU, reconstruction can run on the GPU for a significant speed-up (see GPU Acceleration). Ensure the GPU has enough free video memory for the dataset; otherwise it automatically falls back to the CPU.
Reconstruction time scales with the number of projections, output voxel count, enabled preprocessing filters, and the available CPU or GPU.