|
|
|
@ -44,37 +44,37 @@ |
|
|
|
|
|
|
|
|
|
namespace cv { |
|
|
|
|
namespace structured_light { |
|
|
|
|
class CV_EXPORTS_W SinusoidalPatternProfilometry_Impl : public SinusoidalPattern |
|
|
|
|
class CV_EXPORTS_W SinusoidalPatternProfilometry_Impl CV_FINAL : public SinusoidalPattern |
|
|
|
|
{ |
|
|
|
|
public: |
|
|
|
|
// Constructor
|
|
|
|
|
explicit SinusoidalPatternProfilometry_Impl( const SinusoidalPattern::Params ¶meters = |
|
|
|
|
SinusoidalPattern::Params() ); |
|
|
|
|
// Destructor
|
|
|
|
|
virtual ~SinusoidalPatternProfilometry_Impl(){}; |
|
|
|
|
virtual ~SinusoidalPatternProfilometry_Impl() CV_OVERRIDE {}; |
|
|
|
|
|
|
|
|
|
// Generate sinusoidal patterns
|
|
|
|
|
bool generate( OutputArrayOfArrays patternImages ); |
|
|
|
|
bool generate( OutputArrayOfArrays patternImages ) CV_OVERRIDE; |
|
|
|
|
|
|
|
|
|
bool decode( const std::vector< std::vector<Mat> >& patternImages, OutputArray disparityMap, |
|
|
|
|
InputArrayOfArrays blackImages = noArray(), InputArrayOfArrays whiteImages = |
|
|
|
|
noArray(), int flags = 0 ) const; |
|
|
|
|
noArray(), int flags = 0 ) const CV_OVERRIDE; |
|
|
|
|
|
|
|
|
|
// Compute a wrapped phase map from the sinusoidal patterns
|
|
|
|
|
void computePhaseMap( InputArrayOfArrays patternImages, OutputArray wrappedPhaseMap, |
|
|
|
|
OutputArray shadowMask = noArray(), InputArray fundamental = noArray()); |
|
|
|
|
OutputArray shadowMask = noArray(), InputArray fundamental = noArray()) CV_OVERRIDE; |
|
|
|
|
// Unwrap the wrapped phase map to retrieve correspondences
|
|
|
|
|
void unwrapPhaseMap( InputArray wrappedPhaseMap, |
|
|
|
|
OutputArray unwrappedPhaseMap, |
|
|
|
|
cv::Size camSize, |
|
|
|
|
InputArray shadowMask = noArray() ); |
|
|
|
|
InputArray shadowMask = noArray() ) CV_OVERRIDE; |
|
|
|
|
// Find correspondences between the devices
|
|
|
|
|
void findProCamMatches( InputArray projUnwrappedPhaseMap, InputArray camUnwrappedPhaseMap, |
|
|
|
|
OutputArrayOfArrays matches ); |
|
|
|
|
OutputArrayOfArrays matches ) CV_OVERRIDE; |
|
|
|
|
|
|
|
|
|
void computeDataModulationTerm( InputArrayOfArrays patternImages, |
|
|
|
|
OutputArray dataModulationTerm, |
|
|
|
|
InputArray shadowMask ); |
|
|
|
|
InputArray shadowMask ) CV_OVERRIDE; |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
// Compute The Fourier transform of a pattern. Output is complex. Taken from the DFT example in OpenCV
|
|
|
|
|