pub struct AlternatingProjection {
pub iterations: usize,
pub object_step: f64,
pub batch_size: usize,
pub epsilon: f64,
pub loss_type: LossType,
}Expand description
Alternating-projection reconstruction for Fourier ptychographic microscopy.
§Method
For each measured frame, the algorithm extracts the corresponding patch of the current high-resolution object spectrum, multiplies it by the pupil, and propagates the resulting field to the detector plane. It replaces the predicted detector amplitude with the measured amplitude while retaining the predicted phase, propagates the corrected field back to Fourier space, and inserts the resulting correction into the object spectrum. Repeating this operation over overlapping Fourier patches makes them converge toward a mutually consistent complex object.
For incoherently multiplexed frames, one measured-to-predicted amplitude ratio is applied jointly to every source mode before their corrections are back-projected.
§Reference
G. Zheng, R. Horstmeyer, and C. Yang, “Wide-field, high-resolution Fourier ptychographic microscopy,” Nature Photonics 7, 739–745 (2013), doi:10.1038/nphoton.2013.187.
Fields§
§iterations: usizeNumber of complete passes through the acquisition schedule.
object_step: f64Relaxation factor applied to each object-spectrum correction.
batch_size: usizeNumber of measured frames supplied to each reconstruction step.
epsilon: f64Positive numerical floor used in divisions and dark-field handling.
loss_type: LossTypeLoss used for diagnostics; the projection itself always enforces the measured amplitude.
Implementations§
Source§impl AlternatingProjection
impl AlternatingProjection
pub fn iterations(self, iterations: usize) -> Self
pub fn object_step(self, object_step: f64) -> Self
pub fn batch_size(self, batch_size: usize) -> Self
Trait Implementations§
Source§impl Clone for AlternatingProjection
impl Clone for AlternatingProjection
Source§fn clone(&self) -> AlternatingProjection
fn clone(&self) -> AlternatingProjection
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more