Image Processing Toolbox | ![]() ![]() |
Convert point-spread function to optical transfer function.
Syntax
Description
OTF = psf2otf(PSF)
computes the Fast Fourier Transform (FFT) of the point-spread function (PSF
) array and creates the optical transfer function array, OTF
, that is not influenced by the PSF
off-centering. By default, the OTF
array is the same size as the PSF
array.
OTF = psf2otf(PSF,OUTSIZE)
converts the PSF
array into an OTF
array, where OUTSIZE
specifies the size of the OTF
array. The OUTSIZE
cannot be smaller than the PSF
array size in any dimension.
To ensure that the OTF
is not altered due to PSF
off-centering, psf2otf post-pads the PSF
array (down or to the right) with zeros to match dimensions specified in OUTSIZE
, then circularly shifts the values of the PSF
array up (or to the left) until the central pixel reaches (1,1) position.
Note that this function is used in image convolution/deconvolution when the operations involve the FFT
.
Class Support
PSF
can be any nonsparse, numeric array. OTF
is of class double
.
Example
PSF = fspecial('gaussian',13,1); OTF = psf2otf(PSF,[31 31]); % PSF --> OTF subplot(1,2,1); surf(PSF); title('PSF'); axis square; axis tight subplot(1,2,2); surf(abs(OTF)); title('corresponding |OTF|'); axis square; axis tight
See Also
![]() | pixval | qtdecomp | ![]() |