def generate_mtf(pixel_aperture=1, azimuth=0, num_samples=128):
''' generates the 1D diffraction-limited MTF for a given pixel size and azimuth.
Args:
pixel_aperture (`float`): aperture of the pixel, in microns. Pixel is
assumed to be square.
azimuth (`float`): azimuth to retrieve the MTF at, in degrees.
num_samples (`int`): number of samples in the output array.
Returns:
`tuple` containing:
`numpy.ndarray`: array of units, in cy/mm.
`numpy.ndarray`: array of MTF values (rel. 1.0).
Notes:
Azimuth is not actually implemented yet.
'''
pitch_unit = pixel_aperture / 1e3
normalized_frequencies = np.linspace(0, 2, num_samples)
otf = np.sinc(normalized_frequencies)
mtf = np.abs(otf)
return normalized_frequencies / pitch_unit, mtf
评论列表
文章目录