OpenCV  4.10.0
Open Source Computer Vision
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | List of all members
cv::structured_light::SinusoidalPattern Class Referenceabstract

Class implementing Fourier transform profilometry (FTP) , phase-shifting profilometry (PSP) and Fourier-assisted phase-shifting profilometry (FAPS) based on [62]. More...

#include <opencv2/structured_light/sinusoidalpattern.hpp>

Collaboration diagram for cv::structured_light::SinusoidalPattern:

Classes

struct  Params
 Parameters of SinusoidalPattern constructor. More...
 

Public Member Functions

virtual void computeDataModulationTerm (InputArrayOfArrays patternImages, OutputArray dataModulationTerm, InputArray shadowMask)=0
 compute the data modulation term.
 
virtual void computePhaseMap (InputArrayOfArrays patternImages, OutputArray wrappedPhaseMap, OutputArray shadowMask=noArray(), InputArray fundamental=noArray())=0
 Compute a wrapped phase map from sinusoidal patterns.
 
virtual void findProCamMatches (InputArray projUnwrappedPhaseMap, InputArray camUnwrappedPhaseMap, OutputArrayOfArrays matches)=0
 Find correspondences between the two devices thanks to unwrapped phase maps.
 
virtual void unwrapPhaseMap (InputArray wrappedPhaseMap, OutputArray unwrappedPhaseMap, cv::Size camSize, InputArray shadowMask=noArray())=0
 Unwrap the wrapped phase map to remove phase ambiguities.
 
- Public Member Functions inherited from cv::structured_light::StructuredLightPattern
virtual bool decode (const std::vector< std::vector< Mat > > &patternImages, OutputArray disparityMap, InputArrayOfArrays blackImages=noArray(), InputArrayOfArrays whiteImages=noArray(), int flags=DECODE_3D_UNDERWORLD) const =0
 Decodes the structured light pattern, generating a disparity map.
 
virtual bool generate (OutputArrayOfArrays patternImages)=0
 Generates the structured light pattern to project.
 
- Public Member Functions inherited from cv::Algorithm
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 Clears the algorithm state.
 
virtual bool empty () const
 Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read.
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 Reads algorithm parameters from a file storage.
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
virtual void write (FileStorage &fs) const
 Stores algorithm parameters in a file storage.
 
void write (FileStorage &fs, const String &name) const
 

Static Public Member Functions

static Ptr< SinusoidalPatterncreate (Ptr< SinusoidalPattern::Params > parameters=makePtr< SinusoidalPattern::Params >())
 Constructor.
 
- Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 Loads algorithm from the file.
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 Loads algorithm from a String.
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 Reads algorithm from the file node.
 

Additional Inherited Members

- Protected Member Functions inherited from cv::Algorithm
void writeFormat (FileStorage &fs) const
 

Detailed Description

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

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

Member Function Documentation

◆ computeDataModulationTerm()

virtual void cv::structured_light::SinusoidalPattern::computeDataModulationTerm ( InputArrayOfArrays  patternImages,
OutputArray  dataModulationTerm,
InputArray  shadowMask 
)
pure virtual
Python:
cv.structured_light.SinusoidalPattern.computeDataModulationTerm(patternImages, shadowMask[, dataModulationTerm]) -> dataModulationTerm

compute the data modulation term.

Parameters
patternImagescaptured images with projected patterns.
dataModulationTermMat where the data modulation term is saved.
shadowMaskMask used to discard shadow regions.

◆ computePhaseMap()

virtual void cv::structured_light::SinusoidalPattern::computePhaseMap ( InputArrayOfArrays  patternImages,
OutputArray  wrappedPhaseMap,
OutputArray  shadowMask = noArray(),
InputArray  fundamental = noArray() 
)
pure virtual
Python:
cv.structured_light.SinusoidalPattern.computePhaseMap(patternImages[, wrappedPhaseMap[, shadowMask[, fundamental]]]) -> wrappedPhaseMap, shadowMask

Compute a wrapped phase map from sinusoidal patterns.

Parameters
patternImagesInput data to compute the wrapped phase map.
wrappedPhaseMapWrapped phase map obtained through one of the three methods.
shadowMaskMask used to discard shadow regions.
fundamentalFundamental matrix used to compute epipolar lines and ease the matching step.
Here is the call graph for this function:

◆ create()

static Ptr< SinusoidalPattern > cv::structured_light::SinusoidalPattern::create ( Ptr< SinusoidalPattern::Params parameters = makePtrSinusoidalPattern::Params >())
static
Python:
cv.structured_light.SinusoidalPattern.create([, parameters]) -> retval
cv.structured_light.SinusoidalPattern_create([, parameters]) -> retval

Constructor.

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

◆ findProCamMatches()

virtual void cv::structured_light::SinusoidalPattern::findProCamMatches ( InputArray  projUnwrappedPhaseMap,
InputArray  camUnwrappedPhaseMap,
OutputArrayOfArrays  matches 
)
pure virtual
Python:
cv.structured_light.SinusoidalPattern.findProCamMatches(projUnwrappedPhaseMap, camUnwrappedPhaseMap[, matches]) -> matches

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

Parameters
projUnwrappedPhaseMapProjector's unwrapped phase map.
camUnwrappedPhaseMapCamera's unwrapped phase map.
matchesImages used to display correspondences map.

◆ unwrapPhaseMap()

virtual void cv::structured_light::SinusoidalPattern::unwrapPhaseMap ( InputArray  wrappedPhaseMap,
OutputArray  unwrappedPhaseMap,
cv::Size  camSize,
InputArray  shadowMask = noArray() 
)
pure virtual
Python:
cv.structured_light.SinusoidalPattern.unwrapPhaseMap(wrappedPhaseMap, camSize[, unwrappedPhaseMap[, shadowMask]]) -> unwrappedPhaseMap

Unwrap the wrapped phase map to remove phase ambiguities.

Parameters
wrappedPhaseMapThe wrapped phase map computed from the pattern.
unwrappedPhaseMapThe unwrapped phase map used to find correspondences between the two devices.
camSizeResolution of the camera.
shadowMaskMask used to discard shadow regions.
Here is the call graph for this function:

The documentation for this class was generated from the following file: