autods_pet.ops.morphology#

Distance-transform based morphology, robust to anisotropic spacing.

autods_pet.ops.morphology.signed_distance_mm(mask)[source]#

Compute a signed distance map in mm from a binary mask.

Parameters:

mask (Image) – Binary mask (non-zero values are foreground).

Returns:

Float image where positive values are inside the mask and negative values are outside, in physical mm units (respects voxel spacing).

Return type:

Image

autods_pet.ops.morphology.erode_mask_mm(mask, radius_mm, *, dist=None)[source]#

Erode a binary mask by radius_mm using a distance transform.

Pass a pre-computed dist (from signed_distance_mm()) to avoid recomputing it when eroding and dilating the same mask.

Parameters:
  • mask (sitk.Image) – Binary mask (non-zero values are foreground).

  • radius_mm (float) – Erosion radius in physical mm units.

  • dist (sitk.Image | None (default: None)) – Pre-computed signed distance map. When None (default), it is computed internally via signed_distance_mm().

Returns:

Eroded binary mask (uint8).

Return type:

sitk.Image

autods_pet.ops.morphology.dilate_mask_mm(mask, radius_mm, *, dist=None)[source]#

Dilate a binary mask by radius_mm using a distance transform.

Pass a pre-computed dist (from signed_distance_mm()) to avoid recomputing it when eroding and dilating the same mask.

Parameters:
  • mask (sitk.Image) – Binary mask (non-zero values are foreground).

  • radius_mm (float) – Dilation radius in physical mm units.

  • dist (sitk.Image | None (default: None)) – Pre-computed signed distance map. When None (default), it is computed internally via signed_distance_mm().

Returns:

Dilated binary mask (uint8).

Return type:

sitk.Image