SinusoidalPattern

Objective-C

@interface SinusoidalPattern : StructuredLightPattern

Swift

class SinusoidalPattern : StructuredLightPattern

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

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

Member of Structured_light

Methods

  • Constructor.

    Declaration

    Objective-C

    + (nonnull SinusoidalPattern *)create:
        (nonnull SinusoidalPatternParams *)parameters;

    Swift

    class func create(parameters: SinusoidalPatternParams) -> SinusoidalPattern

    Parameters

    parameters

    SinusoidalPattern parameters SinusoidalPattern::Params: width, height of the projector and patterns parameters.

  • Constructor.

    Declaration

    Objective-C

    + (nonnull SinusoidalPattern *)create;

    Swift

    class func create() -> SinusoidalPattern
  • compute the data modulation term.

    Declaration

    Objective-C

    - (void)computeDataModulationTerm:(nonnull NSArray<Mat *> *)patternImages
                   dataModulationTerm:(nonnull Mat *)dataModulationTerm
                           shadowMask:(nonnull Mat *)shadowMask;

    Swift

    func computeDataModulationTerm(patternImages: [Mat], dataModulationTerm: Mat, shadowMask: Mat)

    Parameters

    patternImages

    captured images with projected patterns.

    dataModulationTerm

    Mat where the data modulation term is saved.

    shadowMask

    Mask used to discard shadow regions.

  • Compute a wrapped phase map from sinusoidal patterns.

    Declaration

    Objective-C

    - (void)computePhaseMap:(nonnull NSArray<Mat *> *)patternImages
            wrappedPhaseMap:(nonnull Mat *)wrappedPhaseMap
                 shadowMask:(nonnull Mat *)shadowMask
                fundamental:(nonnull Mat *)fundamental;

    Swift

    func computePhaseMap(patternImages: [Mat], wrappedPhaseMap: Mat, shadowMask: Mat, fundamental: Mat)

    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.

  • Compute a wrapped phase map from sinusoidal patterns.

    Declaration

    Objective-C

    - (void)computePhaseMap:(nonnull NSArray<Mat *> *)patternImages
            wrappedPhaseMap:(nonnull Mat *)wrappedPhaseMap
                 shadowMask:(nonnull Mat *)shadowMask;

    Swift

    func computePhaseMap(patternImages: [Mat], wrappedPhaseMap: Mat, shadowMask: Mat)

    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.

  • Compute a wrapped phase map from sinusoidal patterns.

    Declaration

    Objective-C

    - (void)computePhaseMap:(nonnull NSArray<Mat *> *)patternImages
            wrappedPhaseMap:(nonnull Mat *)wrappedPhaseMap;

    Swift

    func computePhaseMap(patternImages: [Mat], wrappedPhaseMap: Mat)

    Parameters

    patternImages

    Input data to compute the wrapped phase map.

    wrappedPhaseMap

    Wrapped phase map obtained through one of the three methods.

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

    Declaration

    Objective-C

    - (void)findProCamMatches:(nonnull Mat *)projUnwrappedPhaseMap
         camUnwrappedPhaseMap:(nonnull Mat *)camUnwrappedPhaseMap
                      matches:(nonnull NSMutableArray<Mat *> *)matches;

    Swift

    func findProCamMatches(projUnwrappedPhaseMap: Mat, camUnwrappedPhaseMap: Mat, matches: NSMutableArray)

    Parameters

    projUnwrappedPhaseMap

    Projector’s unwrapped phase map.

    camUnwrappedPhaseMap

    Camera’s unwrapped phase map.

    matches

    Images used to display correspondences map.

  • Unwrap the wrapped phase map to remove phase ambiguities.

    Declaration

    Objective-C

    - (void)unwrapPhaseMap:(nonnull Mat *)wrappedPhaseMap
         unwrappedPhaseMap:(nonnull Mat *)unwrappedPhaseMap
                   camSize:(nonnull Size2i *)camSize
                shadowMask:(nonnull Mat *)shadowMask;

    Swift

    func unwrapPhaseMap(wrappedPhaseMap: Mat, unwrappedPhaseMap: Mat, camSize: Size2i, shadowMask: Mat)

    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.

  • Unwrap the wrapped phase map to remove phase ambiguities.

    Declaration

    Objective-C

    - (void)unwrapPhaseMap:(nonnull Mat *)wrappedPhaseMap
         unwrappedPhaseMap:(nonnull Mat *)unwrappedPhaseMap
                   camSize:(nonnull Size2i *)camSize;

    Swift

    func unwrapPhaseMap(wrappedPhaseMap: Mat, unwrappedPhaseMap: Mat, camSize: Size2i)

    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.