Skip to main content

BrightfieldCircleInitializer

Struct BrightfieldCircleInitializer 

Source
pub struct BrightfieldCircleInitializer {
    pub parameters: PlanarArrayCalibrationParameters,
    pub options: BrightfieldCircleOptions,
}
Expand description

Bright-field detector and bounded physical planar-array fitter.

The detector uses circular pupil edges in centered intensity spectra only to obtain a physical warm start. It then fits those observed centers to the canonical PlanarLedArray mapping. It does not reconstruct an object and does not produce independent source shifts. Measurement-loss refinement remains the responsibility of IlluminationCalibration.

§Assumptions

Selected frames must be single-source, strictly bright-field exposures of a thin coherent specimen with enough reference interference and texture to expose the circular pupil edge. The compiled pupil support must be circular and shift invariant. The initializer uses two deterministic streaming measurement passes and preserves pupil values, backgrounds, source powers, frame gains, sampling, and acquisition topology in its returned model.

§Example

use fpm_rs::{
    Result,
    experiment::{Illumination, Optics},
    illumination_calibration::{
        CalibrationParameterSpec, PlanarArrayCalibrationParameters,
    },
    illumination_initialization::BrightfieldCircleInitializer,
    measurements::MeasurementStack,
    model::ImagePlaneModel,
};

let lateral = CalibrationParameterSpec::new(-1e-3, 1e-3, 0.2e-3)
    .finite_difference_step(1e-6);
let parameters = PlanarArrayCalibrationParameters::builder()
    .translation_specs([Some(lateral.clone()), Some(lateral), None])
    .build()?;
let initialized = BrightfieldCircleInitializer::new(parameters)
    .initialize(measurements, optics, nominal, model)?;
let warm_model = initialized.initialized_model;

§References

Fields§

§parameters: PlanarArrayCalibrationParameters

Global physical parameters selected for fitting.

§options: BrightfieldCircleOptions

Detector, rank, and fit controls.

Implementations§

Source§

impl BrightfieldCircleInitializer

Source

pub fn new(parameters: PlanarArrayCalibrationParameters) -> Self

Creates an initializer for explicitly selected global physical parameters.

Source

pub fn options(self, options: BrightfieldCircleOptions) -> Self

Replaces circle-detection and physical-fit options.

Source

pub fn validate_for(&self, illumination: &Illumination) -> Result<()>

Validates this initializer for the nominal planar-array illumination.

Source

pub fn initialize<M: MeasurementRead>( &self, measurements: &M, optics: &Optics, nominal_illumination: &Illumination, model: &ImagePlaneModel, ) -> Result<PlanarArrayInitializationResult>

Detects bright-field circles and fits a physical warm start using the CPU backend.

Source

pub fn initialize_with_backend<M: MeasurementRead>( &self, measurements: &M, optics: &Optics, nominal_illumination: &Illumination, model: &ImagePlaneModel, backend: Arc<dyn Backend>, ) -> Result<PlanarArrayInitializationResult>

Detects and fits using an explicit FFT backend.

Source

pub fn initialize_with_callback<M: MeasurementRead>( &self, measurements: &M, optics: &Optics, nominal_illumination: &Illumination, model: &ImagePlaneModel, backend: Arc<dyn Backend>, callback: &mut dyn PlanarArrayInitializationCallback, ) -> Result<PlanarArrayInitializationResult>

Detects and fits with an explicit backend and initializer-specific callback.

Trait Implementations§

Source§

impl Clone for BrightfieldCircleInitializer

Source§

fn clone(&self) -> BrightfieldCircleInitializer

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for BrightfieldCircleInitializer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Key for T
where T: Clone,

§

fn align() -> usize

The alignment necessary for the key. Must return a power of two.
§

fn size(&self) -> usize

The size of the key in bytes.
§

unsafe fn init(&self, ptr: *mut u8)

Initialize the key in the given memory location. Read more
§

unsafe fn get<'a>(ptr: *const u8) -> &'a T

Get a reference to the key from the given memory location. Read more
§

unsafe fn drop_in_place(ptr: *mut u8)

Drop the key in place. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,