Skip to content
Snippets Groups Projects
util.py 1.11 KiB
Newer Older
  • Learn to ignore specific revisions
  • """
    Dataset utility method.
    Currently, the only available method aligns images at
    their central slice.
    """
    
    from typing import Tuple
    
    import numpy as np
    
    
    def align_images(
        image_1: np.ndarray, image_2: np.ndarray
    ) -> Tuple[np.ndarray, np.ndarray]:
        """
        Center align the image with more slices to the one with fewer slices on the first axis (z-axis).
    
    
        Parameters
        ----------
        image_1: np.ndarray
            the image to be aligned
        image_2: np.ndarray
            the image to which image_1 is aligned
    
        Returns
        -------
        Tuple[np.ndarray, np.ndarray]
            both images aligned in the order they were put in
    
        """
        # reverse function if image_2 has more slices
        if image_2.shape[0] > image_1.shape[0]:
            return align_images(image_2, image_1)[::-1]
    
        # central slice of image 2
        c_2 = image_2.shape[0] // 2
        # image to the left and right of the center
        left = c_2
        right = image_2.shape[0] - c_2
    
        # central slice of image 1
        c_1 = image_1.shape[0] // 2
        # select center and same amount to the left/right as image_2
        return image_1[(c_1 - left) : (c_1 + right)], image_2