pub trait SinusoidalPattern: SinusoidalPatternConst + StructuredLightPattern {
    // Required method
    fn as_raw_mut_SinusoidalPattern(&mut self) -> *mut c_void;

    // Provided methods
    fn compute_phase_map(
        &mut self,
        pattern_images: &dyn ToInputArray,
        wrapped_phase_map: &mut dyn ToOutputArray,
        shadow_mask: &mut dyn ToOutputArray,
        fundamental: &dyn ToInputArray
    ) -> Result<()> { ... }
    fn unwrap_phase_map(
        &mut self,
        wrapped_phase_map: &dyn ToInputArray,
        unwrapped_phase_map: &mut dyn ToOutputArray,
        cam_size: Size,
        shadow_mask: &dyn ToInputArray
    ) -> Result<()> { ... }
    fn find_pro_cam_matches(
        &mut self,
        proj_unwrapped_phase_map: &dyn ToInputArray,
        cam_unwrapped_phase_map: &dyn ToInputArray,
        matches: &mut dyn ToOutputArray
    ) -> Result<()> { ... }
    fn compute_data_modulation_term(
        &mut self,
        pattern_images: &dyn ToInputArray,
        data_modulation_term: &mut dyn ToOutputArray,
        shadow_mask: &dyn ToInputArray
    ) -> Result<()> { ... }
}
Expand description

Class implementing Fourier transform profilometry (FTP) , phase-shifting profilometry (PSP) and Fourier-assisted phase-shifting profilometry (FAPS) based on faps.

This class generates sinusoidal patterns that can be used with FTP, PSP and FAPS.

Required Methods§

Provided Methods§

source

fn compute_phase_map( &mut self, pattern_images: &dyn ToInputArray, wrapped_phase_map: &mut dyn ToOutputArray, shadow_mask: &mut dyn ToOutputArray, fundamental: &dyn ToInputArray ) -> Result<()>

Compute a wrapped phase map from sinusoidal patterns.

Parameters
  • patternImages: Input data to compute the wrapped phase map.
  • wrappedPhaseMap: Wrapped phase map obtained through one of the three methods.
  • shadowMask: Mask used to discard shadow regions.
  • fundamental: Fundamental matrix used to compute epipolar lines and ease the matching step.
C++ default parameters
  • shadow_mask: noArray()
  • fundamental: noArray()
source

fn unwrap_phase_map( &mut self, wrapped_phase_map: &dyn ToInputArray, unwrapped_phase_map: &mut dyn ToOutputArray, cam_size: Size, shadow_mask: &dyn ToInputArray ) -> Result<()>

Unwrap the wrapped phase map to remove phase ambiguities.

Parameters
  • wrappedPhaseMap: The wrapped phase map computed from the pattern.
  • unwrappedPhaseMap: The unwrapped phase map used to find correspondences between the two devices.
  • camSize: Resolution of the camera.
  • shadowMask: Mask used to discard shadow regions.
C++ default parameters
  • shadow_mask: noArray()
source

fn find_pro_cam_matches( &mut self, proj_unwrapped_phase_map: &dyn ToInputArray, cam_unwrapped_phase_map: &dyn ToInputArray, matches: &mut dyn ToOutputArray ) -> Result<()>

Find correspondences between the two devices thanks to unwrapped phase maps.

Parameters
  • projUnwrappedPhaseMap: Projector’s unwrapped phase map.
  • camUnwrappedPhaseMap: Camera’s unwrapped phase map.
  • matches: Images used to display correspondences map.
source

fn compute_data_modulation_term( &mut self, pattern_images: &dyn ToInputArray, data_modulation_term: &mut dyn ToOutputArray, shadow_mask: &dyn ToInputArray ) -> Result<()>

compute the data modulation term.

Parameters
  • patternImages: captured images with projected patterns.
  • dataModulationTerm: Mat where the data modulation term is saved.
  • shadowMask: Mask used to discard shadow regions.

Implementations§

source§

impl dyn SinusoidalPattern + '_

source

pub fn create( parameters: Ptr<SinusoidalPattern_Params> ) -> Result<Ptr<dyn SinusoidalPattern>>

Constructor.

Parameters
  • parameters: SinusoidalPattern parameters SinusoidalPattern::Params: width, height of the projector and patterns parameters.
C++ default parameters

Implementors§