ImageDev

PointSpreadFunctionImage3d

Computes a point spread function (PSF) for deconvolution of widefield and confocal microscopic image data.

Access to parameter description

The PSF computation is based on electromagnetic vector theory.

See also

Function Syntax

This function returns outputImage.
// Function prototype
std::shared_ptr< iolink::ImageView > pointSpreadFunctionImage3d( double numericalAperture, double wavelength, double index, PointSpreadFunctionImage3d::MicroscopicMode microscopicMode, const iolink::Vector3u32& shape, const iolink::Vector3d& spacing, std::shared_ptr< iolink::ImageView > outputImage = nullptr );
This function returns outputImage.
// Function prototype.
point_spread_function_image_3d(numerical_aperture: float = 1.35,
                               wavelength: float = 520,
                               index: float = 1.516,
                               microscopic_mode: PointSpreadFunctionImage3d.MicroscopicMode = PointSpreadFunctionImage3d.MicroscopicMode.WIDEFIELD,
                               shape: Iterable[int] = [32, 32, 32],
                               spacing: Union[Iterable[int], Iterable[float]] = [100, 100, 100],
                               output_image: idt.ImageType = None) -> idt.ImageType
This function returns outputImage.
// Function prototype.
public static IOLink.ImageView
PointSpreadFunctionImage3d( double numericalAperture = 1.35,
                            double wavelength = 520,
                            double index = 1.516,
                            PointSpreadFunctionImage3d.MicroscopicMode microscopicMode = ImageDev.PointSpreadFunctionImage3d.MicroscopicMode.WIDEFIELD,
                            uint[] shape = null,
                            double[] spacing = null,
                            IOLink.ImageView outputImage = null );

Class Syntax

Parameters

Parameter Name Description Type Supported Values Default Value
input
numericalAperture
The numerical aperture of the microscope. Float64 >=0 1.35
input
wavelength
The wavelength (as measured in a vacuum) of the emitted light in nanometers.
For confocal data the excitation and emission wavelength are assumed to be identical. In this case, it might prove useful to compensate by supplying a value between excitation and emission wavelength as parameter.
Float64 >=0 520
input
index
The refractive index of the specimen. Float64 >=0 1.516
input
shape
The X, Y, and Z dimensions, in pixels, of the output image. Vector3u32 != 0 {32, 32, 32}
input
spacing
The X, Y, and Z voxel size in nanometers of the PSF image to be generated. Vector3d >0 {100.f, 100.f, 100.f}
input
microscopicMode
Specifies whether the PSF of a widefield microscope or of a confocal microscope should be computed.
WIDEFIELD Compute the PSF of a widefield microscope.
CONFOCAL Compute the PSF of a confocal microscope.
Enumeration WIDEFIELD
output
outputImage
The output image. Image nullptr
Parameter Name Description Type Supported Values Default Value
input
numerical_aperture
The numerical aperture of the microscope. float64 >=0 1.35
input
wavelength
The wavelength (as measured in a vacuum) of the emitted light in nanometers.
For confocal data the excitation and emission wavelength are assumed to be identical. In this case, it might prove useful to compensate by supplying a value between excitation and emission wavelength as parameter.
float64 >=0 520
input
index
The refractive index of the specimen. float64 >=0 1.516
input
shape
The X, Y, and Z dimensions, in pixels, of the output image. vector3u32 != 0 [32, 32, 32]
input
spacing
The X, Y, and Z voxel size in nanometers of the PSF image to be generated. vector3d >0 [100, 100, 100]
input
microscopic_mode
Specifies whether the PSF of a widefield microscope or of a confocal microscope should be computed.
WIDEFIELD Compute the PSF of a widefield microscope.
CONFOCAL Compute the PSF of a confocal microscope.
enumeration WIDEFIELD
output
output_image
The output image. image None
Parameter Name Description Type Supported Values Default Value
input
numericalAperture
The numerical aperture of the microscope. Float64 >=0 1.35
input
wavelength
The wavelength (as measured in a vacuum) of the emitted light in nanometers.
For confocal data the excitation and emission wavelength are assumed to be identical. In this case, it might prove useful to compensate by supplying a value between excitation and emission wavelength as parameter.
Float64 >=0 520
input
index
The refractive index of the specimen. Float64 >=0 1.516
input
shape
The X, Y, and Z dimensions, in pixels, of the output image. Vector3u32 != 0 {32, 32, 32}
input
spacing
The X, Y, and Z voxel size in nanometers of the PSF image to be generated. Vector3d >0 {100f, 100f, 100f}
input
microscopicMode
Specifies whether the PSF of a widefield microscope or of a confocal microscope should be computed.
WIDEFIELD Compute the PSF of a widefield microscope.
CONFOCAL Compute the PSF of a confocal microscope.
Enumeration WIDEFIELD
output
outputImage
The output image. Image null

Object Examples


PointSpreadFunctionImage3d pointSpreadFunctionImage3dAlgo;
pointSpreadFunctionImage3dAlgo.setNumericalAperture( 1.35 );
pointSpreadFunctionImage3dAlgo.setWavelength( 520 );
pointSpreadFunctionImage3dAlgo.setIndex( 1.516 );
pointSpreadFunctionImage3dAlgo.setMicroscopicMode( PointSpreadFunctionImage3d::MicroscopicMode::WIDEFIELD );
pointSpreadFunctionImage3dAlgo.setShape( {32, 32, 32} );
pointSpreadFunctionImage3dAlgo.setSpacing( {100, 100, 100} );
pointSpreadFunctionImage3dAlgo.execute();

std::cout << "outputImage:" << pointSpreadFunctionImage3dAlgo.outputImage()->toString();

point_spread_function_image_3d_algo = imagedev.PointSpreadFunctionImage3d()
point_spread_function_image_3d_algo.numerical_aperture = 1.35
point_spread_function_image_3d_algo.wavelength = 520
point_spread_function_image_3d_algo.index = 1.516
point_spread_function_image_3d_algo.microscopic_mode = imagedev.PointSpreadFunctionImage3d.WIDEFIELD
point_spread_function_image_3d_algo.shape = [32, 32, 32]
point_spread_function_image_3d_algo.spacing = [100, 100, 100]
point_spread_function_image_3d_algo.execute()

print("output_image:", str(point_spread_function_image_3d_algo.output_image))

PointSpreadFunctionImage3d pointSpreadFunctionImage3dAlgo = new PointSpreadFunctionImage3d
{
    numericalAperture = 1.35,
    wavelength = 520,
    index = 1.516,
    microscopicMode = PointSpreadFunctionImage3d.MicroscopicMode.WIDEFIELD,
    shape = new uint[]{32, 32, 32},
    spacing = new double[]{100, 100, 100}
};
pointSpreadFunctionImage3dAlgo.Execute();

Console.WriteLine( "outputImage:" + pointSpreadFunctionImage3dAlgo.outputImage.ToString() );

Function Examples


auto result = pointSpreadFunctionImage3d( 1.35, 520, 1.516, PointSpreadFunctionImage3d::MicroscopicMode::WIDEFIELD, {32, 32, 32}, {100, 100, 100} );

std::cout << "outputImage:" << result->toString();

result = imagedev.point_spread_function_image_3d(1.35, 520, 1.516, imagedev.PointSpreadFunctionImage3d.WIDEFIELD, [32, 32, 32], [100, 100, 100])

print("output_image:", str(result))

IOLink.ImageView result = Processing.PointSpreadFunctionImage3d( 1.35, 520, 1.516, PointSpreadFunctionImage3d.MicroscopicMode.WIDEFIELD, new uint[]{32, 32, 32}, new double[]{100, 100, 100} );

Console.WriteLine( "outputImage:" + result.ToString() );





© 2025 Thermo Fisher Scientific Inc. All rights reserved.