diff --git a/modules/rgbd/include/opencv2/rgbd/linemod.hpp b/modules/rgbd/include/opencv2/rgbd/linemod.hpp index dc42f0634..76b61bf7c 100644 --- a/modules/rgbd/include/opencv2/rgbd/linemod.hpp +++ b/modules/rgbd/include/opencv2/rgbd/linemod.hpp @@ -163,7 +163,7 @@ protected: /** * \brief Modality that computes quantized gradient orientations from a color image. */ -class CV_EXPORTS ColorGradient : public Modality +class CV_EXPORTS_W ColorGradient : public Modality { public: /** @@ -181,14 +181,16 @@ public: */ ColorGradient(float weak_threshold, size_t num_features, float strong_threshold); + CV_WRAP static Ptr create(float weak_threshold, size_t num_features, float strong_threshold); + virtual String name() const CV_OVERRIDE; virtual void read(const FileNode& fn) CV_OVERRIDE; virtual void write(FileStorage& fs) const CV_OVERRIDE; - float weak_threshold; - size_t num_features; - float strong_threshold; + CV_PROP float weak_threshold; + CV_PROP size_t num_features; + CV_PROP float strong_threshold; protected: virtual Ptr processImpl(const Mat& src, @@ -198,7 +200,7 @@ protected: /** * \brief Modality that computes quantized surface normals from a dense depth map. */ -class CV_EXPORTS DepthNormal : public Modality +class CV_EXPORTS_W DepthNormal : public Modality { public: /** @@ -219,15 +221,18 @@ public: DepthNormal(int distance_threshold, int difference_threshold, size_t num_features, int extract_threshold); + CV_WRAP static Ptr create(int distance_threshold, int difference_threshold, + size_t num_features, int extract_threshold); + virtual String name() const CV_OVERRIDE; virtual void read(const FileNode& fn) CV_OVERRIDE; virtual void write(FileStorage& fs) const CV_OVERRIDE; - int distance_threshold; - int difference_threshold; - size_t num_features; - int extract_threshold; + CV_PROP int distance_threshold; + CV_PROP int difference_threshold; + CV_PROP size_t num_features; + CV_PROP int extract_threshold; protected: virtual Ptr processImpl(const Mat& src, diff --git a/modules/rgbd/src/linemod.cpp b/modules/rgbd/src/linemod.cpp index f17a19257..ac2a0e4c0 100644 --- a/modules/rgbd/src/linemod.cpp +++ b/modules/rgbd/src/linemod.cpp @@ -549,6 +549,11 @@ ColorGradient::ColorGradient(float _weak_threshold, size_t _num_features, float { } +Ptr ColorGradient::create(float weak_threshold, size_t num_features, float strong_threshold) +{ + return makePtr(weak_threshold, num_features, strong_threshold); +} + static const char CG_NAME[] = "ColorGradient"; String ColorGradient::name() const @@ -864,6 +869,12 @@ DepthNormal::DepthNormal(int _distance_threshold, int _difference_threshold, siz { } +Ptr DepthNormal::create(int distance_threshold, int difference_threshold, size_t num_features, + int extract_threshold) +{ + return makePtr(distance_threshold, difference_threshold, num_features, extract_threshold); +} + static const char DN_NAME[] = "DepthNormal"; String DepthNormal::name() const