diff --git a/modules/rgbd/include/opencv2/rgbd/linemod.hpp b/modules/rgbd/include/opencv2/rgbd/linemod.hpp index f229e5864..95eed96c4 100644 --- a/modules/rgbd/include/opencv2/rgbd/linemod.hpp +++ b/modules/rgbd/include/opencv2/rgbd/linemod.hpp @@ -200,7 +200,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: /** @@ -218,14 +218,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, @@ -235,7 +237,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: /** @@ -256,15 +258,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 2b00f1b7d..7a62379a3 100644 --- a/modules/rgbd/src/linemod.cpp +++ b/modules/rgbd/src/linemod.cpp @@ -562,6 +562,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 @@ -877,6 +882,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