Skip to content

Commit f953e69

Browse files
committed
Merge pull request #1328 from sovrasov:sl_sinusoidal_pattern_wrapper
2 parents 5f2d797 + 4009fb6 commit f953e69

File tree

4 files changed

+25
-21
lines changed

4 files changed

+25
-21
lines changed

modules/structured_light/include/opencv2/structured_light/sinusoidalpattern.hpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -79,26 +79,26 @@ class CV_EXPORTS_W SinusoidalPattern : public StructuredLightPattern
7979
* @param setMarkers Allow to set markers on the patterns.
8080
* @param markersLocation vector used to store markers location on the patterns.
8181
*/
82-
struct CV_EXPORTS Params
82+
struct CV_EXPORTS_W Params
8383
{
84-
Params();
85-
int width;
86-
int height;
87-
int nbrOfPeriods;
88-
float shiftValue;
89-
int methodId;
90-
int nbrOfPixelsBetweenMarkers;
91-
bool horizontal;
92-
bool setMarkers;
84+
CV_WRAP Params();
85+
CV_PROP_RW int width;
86+
CV_PROP_RW int height;
87+
CV_PROP_RW int nbrOfPeriods;
88+
CV_PROP_RW float shiftValue;
89+
CV_PROP_RW int methodId;
90+
CV_PROP_RW int nbrOfPixelsBetweenMarkers;
91+
CV_PROP_RW bool horizontal;
92+
CV_PROP_RW bool setMarkers;
9393
std::vector<Point2f> markersLocation;
9494
};
9595
/**
9696
* @brief Constructor.
9797
* @param parameters SinusoidalPattern parameters SinusoidalPattern::Params: width, height of the projector and patterns parameters.
9898
*
9999
*/
100-
static Ptr<SinusoidalPattern> create( const SinusoidalPattern::Params &parameters =
101-
SinusoidalPattern::Params() );
100+
CV_WRAP static Ptr<SinusoidalPattern> create( Ptr<SinusoidalPattern::Params> parameters =
101+
makePtr<SinusoidalPattern::Params>() );
102102
/**
103103
* @brief Compute a wrapped phase map from sinusoidal patterns.
104104
* @param patternImages Input data to compute the wrapped phase map.

modules/structured_light/samples/capsinpattern.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@ int main(int argc, char **argv)
103103
String outputUnwrappedPhasePath = parser.get<String>(9);
104104
String reliabilitiesPath = parser.get<String>(10);
105105

106-
Ptr<structured_light::SinusoidalPattern> sinus = structured_light::SinusoidalPattern::create(params);
106+
Ptr<structured_light::SinusoidalPattern> sinus =
107+
structured_light::SinusoidalPattern::create(makePtr<structured_light::SinusoidalPattern::Params>(params));
107108
Ptr<phase_unwrapping::HistogramPhaseUnwrapping> phaseUnwrapping;
108109

109110
vector<Mat> patterns;
@@ -332,4 +333,4 @@ int main(int argc, char **argv)
332333
}
333334
}
334335
return 0;
335-
}
336+
}

modules/structured_light/src/sinusoidalpattern.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -911,9 +911,9 @@ void SinusoidalPatternProfilometry_Impl::convertToAbsolutePhaseMap( InputArrayOf
911911
computeCorrespondEpilines(params.markersLocation, 2, fundamental, epilines);
912912

913913
}
914-
Ptr<SinusoidalPattern> SinusoidalPattern::create( const SinusoidalPattern::Params &params )
914+
Ptr<SinusoidalPattern> SinusoidalPattern::create( Ptr<SinusoidalPattern::Params> params )
915915
{
916-
return makePtr<SinusoidalPatternProfilometry_Impl>(params);
916+
return makePtr<SinusoidalPatternProfilometry_Impl>(*params);
917+
}
917918
}
918919
}
919-
}

modules/structured_light/test/test_faps.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,13 @@ TEST( SinusoidalPattern, unwrapPhaseMap )
5454
{
5555
string folder = cvtest::TS::ptr()->get_data_path() + "/" + STRUCTURED_LIGHT_DIR + "/" + FOLDER_DATA + "/";
5656

57-
structured_light::SinusoidalPattern::Params paramsPsp, paramsFtp, paramsFaps;
58-
paramsFtp.methodId = 0;
59-
paramsPsp.methodId = 1;
60-
paramsFaps.methodId = 2;
57+
Ptr<structured_light::SinusoidalPattern::Params> paramsPsp, paramsFtp, paramsFaps;
58+
paramsPsp = makePtr<structured_light::SinusoidalPattern::Params>();
59+
paramsFtp = makePtr<structured_light::SinusoidalPattern::Params>();
60+
paramsFaps = makePtr<structured_light::SinusoidalPattern::Params>();
61+
paramsFtp->methodId = 0;
62+
paramsPsp->methodId = 1;
63+
paramsFaps->methodId = 2;
6164

6265
Ptr<structured_light::SinusoidalPattern> sinusPsp = structured_light::SinusoidalPattern::create(paramsPsp);
6366
Ptr<structured_light::SinusoidalPattern> sinusFtp = structured_light::SinusoidalPattern::create(paramsFtp);

0 commit comments

Comments
 (0)