Utilities
Device management, precision control, export, and helper functions.
Device Management
-
medical_image.utils.device.resolve_device(*images, explicit=None)[source]
Determine the target device for a processing operation.
- Priority:
Explicit device parameter (if provided)
Device of the first loaded image
Fallback to CPU
- Parameters:
explicit (str | device | None)
- Return type:
device
-
class medical_image.utils.device.Precision[source]
Bases: Enum
-
FULL = torch.float32
-
HALF = torch.float16
-
BFLOAT16 = torch.bfloat16
-
medical_image.utils.device.set_default_precision(precision)[source]
- Parameters:
precision (Precision)
- Return type:
None
-
medical_image.utils.device.get_default_precision()[source]
- Return type:
Precision
-
medical_image.utils.device.get_dtype()[source]
- Return type:
dtype
-
medical_image.utils.device.estimate_image_bytes(image, dtype=torch.float32)[source]
Estimate GPU memory needed for an image tensor.
- Parameters:
-
- Returns:
Estimated bytes required.
- Return type:
int
-
medical_image.utils.device.check_gpu_budget(required_bytes, device=None)[source]
Return True if enough GPU memory is available for the operation.
- Parameters:
-
- Return type:
bool
-
class medical_image.utils.device.DeviceContext[source]
Bases: object
Context manager for GPU-aware processing with automatic memory management.
- Features:
Clears GPU cache on entry and exit
Provides memory usage tracking
Automatic CPU fallback when CUDA is unavailable
-
__init__(device='cuda', fallback='cpu', verbose=False)[source]
- Parameters:
-
-
property device: device
-
memory_stats()[source]
Return current GPU memory usage.
- Return type:
dict
-
medical_image.utils.device.gpu_safe(func)[source]
Decorator: catches CUDA errors (OOM, device-side asserts) and retries on CPU.
-
class medical_image.utils.device.AsyncGPUPipeline[source]
Bases: object
Overlap disk I/O, CPU→GPU transfer, and GPU compute using CUDA streams.
Only usable when CUDA is available.
-
__init__(device='cuda')[source]
- Parameters:
device (str)
-
process_images(images, algorithm)[source]
Process pre-loaded Image objects with overlapped transfer and compute.
- Parameters:
-
- Returns:
List of output Image objects.
- Return type:
list
-
class medical_image.utils.device.MultiGPUAlgorithm[source]
Bases: object
Distribute algorithm execution across available GPUs (data-parallel).
-
__init__(algorithm_cls, gpu_ids=None, **kwargs)[source]
- Parameters:
-
-
apply_batch(images, outputs)[source]
Distribute images across GPUs round-robin.
- Parameters:
-
- Return type:
list
Image Utilities
-
class medical_image.utils.image_utils.TensorConverter[source]
Bases: object
-
static to_numpy(image)[source]
Convert Image.pixel_data (torch tensor) to NumPy array on CPU.
- Parameters:
image (Image) – Image instance containing pixel_data.
- Returns:
np.ndarray
- Return type:
ndarray
-
static ensure_tensor(image, device=None, dtype=None)[source]
Move Image.pixel_data to target device and dtype.
- Parameters:
-
- Returns:
The updated tensor.
- Return type:
Tensor
-
class medical_image.utils.image_utils.ImageExporter[source]
Bases: object
Export an Image object to PNG/JPG/TIFF.
-
static save_as(image, format='PNG')[source]
- Parameters:
image (Image)
- Return type:
str
-
class medical_image.utils.image_utils.ImageVisualizer[source]
Bases: object
Visualization utilities for Image objects.
-
static show(image, cmap='gray', title=None)[source]
- Parameters:
image (Image)
-
static compare(before, after, title_before='Before', title_after='After')[source]
- Parameters:
-
-
class medical_image.utils.image_utils.MathematicalOperations[source]
Bases: object
-
static abs(image, out)[source]
- Parameters:
-
- Return type:
Image
-
static euclidean_distance_sq(Z, V)[source]
Compute squared Euclidean distances between N data points and c centroids.
- Parameters:
Z (Tensor) – (N, d) data matrix.
V (Tensor) – (c, d) centroid matrix.
- Returns:
(c, N) squared distances.
- Return type:
D2
-
static normalize_12bit(image, out)[source]
Normalize a 12-bit DICOM image to [0, 1] by dividing by 4095.
- Parameters:
-
- Returns:
The output Image.
- Return type:
Image
Logging
-
medical_image.utils.logging.configure_logging(level=10, log_file=None)[source]
Optional convenience function for users who want console/file logging.
- Parameters:
-