123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- #ifndef __OPENCV_SINUSOIDAL_PATTERN_HPP__
- #define __OPENCV_SINUSOIDAL_PATTERN_HPP__
- #include "opencv2/core.hpp"
- #include "opencv2/imgproc.hpp"
- #include "opencv2/structured_light/structured_light.hpp"
- #include <opencv2/phase_unwrapping.hpp>
- #include <opencv2/calib3d.hpp>
- namespace cv {
- namespace structured_light {
-
- enum{
- FTP = 0,
- PSP = 1,
- FAPS = 2
- };
- class CV_EXPORTS_W SinusoidalPattern : public StructuredLightPattern
- {
- public:
-
- struct CV_EXPORTS_W Params
- {
- CV_WRAP Params();
- CV_PROP_RW int width;
- CV_PROP_RW int height;
- CV_PROP_RW int nbrOfPeriods;
- CV_PROP_RW float shiftValue;
- CV_PROP_RW int methodId;
- CV_PROP_RW int nbrOfPixelsBetweenMarkers;
- CV_PROP_RW bool horizontal;
- CV_PROP_RW bool setMarkers;
- std::vector<Point2f> markersLocation;
- };
-
- CV_WRAP static Ptr<SinusoidalPattern> create( Ptr<SinusoidalPattern::Params> parameters =
- makePtr<SinusoidalPattern::Params>() );
-
- CV_WRAP
- virtual void computePhaseMap( InputArrayOfArrays patternImages,
- OutputArray wrappedPhaseMap,
- OutputArray shadowMask = noArray(),
- InputArray fundamental = noArray()) = 0;
-
- CV_WRAP
- virtual void unwrapPhaseMap( InputArrayOfArrays wrappedPhaseMap,
- OutputArray unwrappedPhaseMap,
- cv::Size camSize,
- InputArray shadowMask = noArray() ) = 0;
-
- CV_WRAP
- virtual void findProCamMatches( InputArray projUnwrappedPhaseMap, InputArray camUnwrappedPhaseMap,
- OutputArrayOfArrays matches ) = 0;
-
- CV_WRAP
- virtual void computeDataModulationTerm( InputArrayOfArrays patternImages,
- OutputArray dataModulationTerm,
- InputArray shadowMask ) = 0;
- };
- }
- }
- #endif
|