ImagingDataCommons / highdicom

High-level DICOM abstractions for the Python programming language
https://highdicom.readthedocs.io
MIT License
168 stars 35 forks source link

Compute plane positions more efficiently for TILED_FULL dimension organization #191

Closed hackermd closed 2 years ago

hackermd commented 2 years ago

If the Dimension Organization is TILED_FULL, the position of frames in a multi-frame image needs to be computed. The current implementation of the compute_plane_position_slide_per_frame() function performs this computation in an inefficient manner by calling compute_plane_position_tiled_full() for each frame, which internally constructs a PixelToReferenceTransformer object for every invocation. This PR improves the performance of the computation by constructing a PixelToReferenceTransformer object once and then re-using the object repeatedly. I tested this on a larger VL Whole Slide Microscopy Image instance and was able to speed up the computation from 2.38 seconds to 1.65 seconds.