Source code for medipt.transforms.intensity.gaussian_blur

from typing import Union, Tuple, List
import numpy as np
from ...utils import random_uniform_float
from ...utils.random_float import initialize_rand_state
from .intensity_utils_np import gaussian_blur_np
from .intensity_utils_sitk import gaussian_blur_sitk
import SimpleITK as sitk


[docs]class GaussianBlur: def __init__(self, sigma: Union[int, float], *args, **kwargs): self.sigma = sigma def __call__(self, image: Union[np.ndarray, sitk.Image], *args, **kwargs) -> Union[np.ndarray, sitk.Image]: if isinstance(image, np.ndarray): return gaussian_blur_np(image, self.sigma, *args, **kwargs) elif isinstance(image, sitk.Image): return gaussian_blur_sitk(image, self.sigma, *args, **kwargs) else: raise ImportError("Image must be either a numpy array or a SimpleITK image.")
[docs]class RandomGaussianBlur: def __init__(self, min_sigma: Union[int, float], max_sigma: Union[int, float], seed: Union[np.random.RandomState, np.random.Generator, np.random.BitGenerator, int, None] = None, legacy_random_state: bool = True, *args, ** kwargs): self.min_sigma = min_sigma self.max_sigma = max_sigma self.seed = seed self.legacy_random_state = legacy_random_state self.rand_init = initialize_rand_state(self.seed, self.legacy_random_state) def __call__(self, image: Union[np.ndarray, sitk.Image], *args, **kwargs) -> Union[np.ndarray, sitk.Image]: sigma = random_uniform_float(low_value=self.min_sigma, high_value=self.max_sigma, seed=self.seed, legacy_random_state=self.legacy_random_state, rand_init=self.rand_init) if isinstance(image, np.ndarray): return gaussian_blur_np(image, sigma, *args, **kwargs) elif isinstance(image, sitk.Image): return gaussian_blur_sitk(image, sigma, *args, **kwargs) else: raise ImportError("image must be either a numpy array or a SimpleITK image.")