Skip to content

bed positions and projection/detector/image coordinates #219

@KrisThielemans

Description

@KrisThielemans

@rijobro and I had a look at incorporating horizontal bed position into STIR. The grand plan is simple:

  • make sure that all projectors (and symmetries) etc find LORs/detectors coordinates using get_m or get_t
  • take bed position into account in get_m/get_t, i.e. specify them to be in a coordinate system w.r.t. the bed) (get_m is currently zero in the centre of the scanner, but this would now only be true for the reference bed-position)
  • image coordinates should use the same coordinate system

Aims:

  • whatever the bed position, a direct LOR at m=0 intersects voxels at z=0, etc.
  • if we know the patient orientation, we can figure out the LPS of each voxel, which should then correspond to what the manufacturer uses (in DICOM).

Complications:

Given that current get_m is 0 in the middle of the scanner, and image-z=0 in the centre of the first ring (for standard-sized images), it seems we need a shift:

new_get_m = current_get_m - bed_offset + (num_rings-1)/2*ring_spacing

It seems then that for backwards compatibility, we need a default bed_offset=(num_rings-1)/2*ring_spacing which is slightly weird.

Anyone any better ideas? @NikEfth, @ashgillman ?

Notes:

  • we haven't thought hard yet about the sign of the bed_offset in the above eq. I guess that's pure convention.
  • There's probably going to be a backward incompatibility for zoom_image when used with zoom arguments, as this currently tries to preserve the centre.

Metadata

Metadata

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions