Skip to content

Correspondence between the z-axis coordinates of CT projection data and CT volume #212

Description

@Alo1d

I am reconstructing projection data from the 2016 AAPM Low Dose CT Grand Challenge dataset, and I would like the reconstructed volume to be aligned with the official reconstruction. I encountered the following issue.

The projection data in this dataset correspond to a helical CT acquisition with a cylindrical detector. In LEAP, I am reconstructing the data using cone-beam geometry together with a helical pitch parameter.

For patient L067, the official projection data are provided in DICOM-CT-PD format. The corresponding z_0 values in the projection data are:

[48.50999832, 48.52999878, 48.54000092, ..., 532.97998047, 532.98999023, 533.0]

where the meaning of z_0 is shown in the figure (from DICOM-CT-PD User Manual Version 3).

Image

The official reconstructed 3D image volume also provides the Reconstruction Target Center for each slice, whose z-coordinates are:

[-67, -67.8, -68.6, ..., -514.2]

which appears to correspond approximately to -z_0, up to an offset.

However, based on my observations of the LEAP reconstruction results, the reconstructed voxel volume appears to be centered around zero, i.e. its z-range is something like [-m, m]. In LEAP, the reconstructed region is specified by setting offsetZ as the center of the volume and numZ as the number of slices, together with the voxel height.

What I would like to know is: when reconstructing with LEAP, what physical z-coordinate in the projection data does the LEAP coordinate z = 0 correspond to? For example, if I set offsetZ = 0 and numZ = 1, what z-coordinate in the original projection-data coordinate system does this reconstructed slice correspond to? This question can also be interpreted as asking how the center of the reconstructed volume is defined along the z-axis when the z-coordinate of the input projection data is implicitly determined by the helical pitch.

Is there an analytic formula for this correspondence?

For the time being, my current working assumption is that LEAP’s z = 0 corresponds to the midpoint of the projection-data z-range, namely:

z_0 = (min_z_0 + max_z_0) / 2. For example, in the case above, this would be: (48.50999832 + 533.0) / 2 = 290.754999.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions