fouriax.IncoherentImager#
- class IncoherentImager(optical_layer, propagator, input_distance_um=None, output_distance_um=None, calibration_source='impulse', normalize_psf=True, enforce_nonnegative_psf=True, mode='auto', normalization_reference='near_wavelength', normalization_reference_distance_um=None)#
Bases:
IncoherentLayerIncoherent shift-invariant imager built from coherent optics.
- Parameters:
optical_layer (OpticalLayer)
propagator (OpticalLayer)
input_distance_um (float | None)
output_distance_um (float | None)
calibration_source (Literal['impulse', 'plane_wave_focus', 'point_source'])
normalize_psf (bool)
enforce_nonnegative_psf (bool)
mode (Literal['psf', 'otf', 'auto'])
normalization_reference (Literal['near_1um', 'near_wavelength', 'at_imaging_distance'])
normalization_reference_distance_um (float | None)
- __init__(optical_layer, propagator, input_distance_um=None, output_distance_um=None, calibration_source='impulse', normalize_psf=True, enforce_nonnegative_psf=True, mode='auto', normalization_reference='near_wavelength', normalization_reference_distance_um=None)#
- Parameters:
optical_layer (OpticalLayer)
propagator (OpticalLayer)
input_distance_um (float | None)
output_distance_um (float | None)
calibration_source (Literal['impulse', 'plane_wave_focus', 'point_source'])
normalize_psf (bool)
enforce_nonnegative_psf (bool)
mode (Literal['psf', 'otf', 'auto'])
normalization_reference (Literal['near_1um', 'near_wavelength', 'at_imaging_distance'])
normalization_reference_distance_um (float | None)
- Return type:
None
Methods
__init__(optical_layer, propagator[, ...])build_psf(field)for_far_field(*, optical_layer, propagator, ...)for_finite_distance(*, optical_layer, ...[, ...])forward(intensity)Apply this layer's transformation to
intensity.linear_operator(template, *[, cache, ...])normalization_distance_um(intensity)Return trainable or configurable layer parameters.
validate_for(intensity)Check that
intensityis compatible with this layer.Attributes
- optical_layer: OpticalLayer#
- propagator: OpticalLayer#
- input_distance_um: float | None = None#
- output_distance_um: float | None = None#
- calibration_source: Literal['impulse', 'plane_wave_focus', 'point_source'] = 'impulse'#
- normalize_psf: bool = True#
- enforce_nonnegative_psf: bool = True#
- mode: Literal['psf', 'otf', 'auto'] = 'auto'#
- normalization_reference: Literal['near_1um', 'near_wavelength', 'at_imaging_distance'] = 'near_wavelength'#
- normalization_reference_distance_um: float | None = None#
- classmethod for_far_field(*, optical_layer, propagator, output_distance_um, normalize_psf=True, enforce_nonnegative_psf=True, mode='auto', normalization_reference='near_wavelength', normalization_reference_distance_um=None)#
- Parameters:
optical_layer (OpticalLayer)
propagator (OpticalLayer)
output_distance_um (float)
normalize_psf (bool)
enforce_nonnegative_psf (bool)
mode (Literal['psf', 'otf', 'auto'])
normalization_reference (Literal['near_1um', 'near_wavelength', 'at_imaging_distance'])
normalization_reference_distance_um (float | None)
- Return type:
- classmethod for_finite_distance(*, optical_layer, propagator, input_distance_um, output_distance_um, normalize_psf=True, enforce_nonnegative_psf=True, mode='auto', normalization_reference='near_wavelength', normalization_reference_distance_um=None)#
- Parameters:
optical_layer (OpticalLayer)
propagator (OpticalLayer)
input_distance_um (float)
output_distance_um (float)
normalize_psf (bool)
enforce_nonnegative_psf (bool)
mode (Literal['psf', 'otf', 'auto'])
normalization_reference (Literal['near_1um', 'near_wavelength', 'at_imaging_distance'])
normalization_reference_distance_um (float | None)
- Return type:
- forward(intensity)#
Apply this layer’s transformation to
intensity.
- linear_operator(template, *, cache='auto', flatten=False, conv_grid=None)#
- parameters()#
Return trainable or configurable layer parameters.
- Return type:
dict[str, Array]