Source code for medical_image.process.frequency

import torch

from medical_image.data.image import Image, requires_loaded
from medical_image.utils.device import resolve_device


[docs] class FrequencyOperations:
[docs] @staticmethod @requires_loaded def fft(image: Image, output: Image, device=None) -> Image: """ Computes the 2-dimensional Fast Fourier Transform (FFT) of an image. Args: image: Input image. output: Output image to store the complex FFT result. device: Device to perform computation on (None = infer from image). Returns: The output Image. """ device = resolve_device(image, explicit=device) img = image.pixel_data.to(device).float() fft_result = torch.fft.fft2(img) output.pixel_data = fft_result.to(device) return output
[docs] @staticmethod @requires_loaded def inverse_fft(image: Image, output: Image, device=None) -> Image: """ Computes the inverse 2-dimensional Fast Fourier Transform (IFFT) of an image. Args: image: Input image in the frequency domain (complex tensor). output: Output image to store the inverse FFT result. device: Device to perform computation on (None = infer from image). Returns: The output Image. """ device = resolve_device(image, explicit=device) img = image.pixel_data.to(device) ifft_result = torch.fft.ifft2(img) output.pixel_data = ifft_result.to(device) return output