Python: wrap Algorithm::read and Algorithm::write

pull/9247/head
Pavel Rojtberg 7 years ago
parent f071a48ec7
commit 6fbf0758bc
  1. 9
      modules/core/include/opencv2/core.hpp
  2. 13
      modules/core/src/algorithm.cpp
  3. 13
      modules/features2d/include/opencv2/features2d.hpp

@ -3093,13 +3093,18 @@ public:
*/
virtual void write(FileStorage& fs) const { (void)fs; }
/** @brief simplified API for language bindings
* @overload
*/
CV_WRAP void write(const Ptr<FileStorage>& fs, const String& name = String()) const;
/** @brief Reads algorithm parameters from a file storage
*/
virtual void read(const FileNode& fn) { (void)fn; }
CV_WRAP virtual void read(const FileNode& fn) { (void)fn; }
/** @brief Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read
*/
virtual bool empty() const { return false; }
CV_WRAP virtual bool empty() const { return false; }
/** @brief Reads algorithm from the file node

@ -55,6 +55,19 @@ Algorithm::~Algorithm()
CV_TRACE_FUNCTION();
}
void Algorithm::write(const Ptr<FileStorage>& fs, const String& name) const
{
CV_TRACE_FUNCTION();
if(name.empty())
{
write(*fs);
return;
}
*fs << name << "{";
write(*fs);
*fs << "}";
}
void Algorithm::save(const String& filename) const
{
CV_TRACE_FUNCTION();

@ -210,11 +210,15 @@ public:
virtual void write( FileStorage&) const;
virtual void read( const FileNode&);
// see corresponding cv::Algorithm method
CV_WRAP virtual void read( const FileNode&);
//! Return true if detector object is empty
CV_WRAP virtual bool empty() const;
CV_WRAP virtual String getDefaultName() const;
// see corresponding cv::Algorithm method
CV_WRAP inline void write(const Ptr<FileStorage>& fs, const String& name = String()) const { Algorithm::write(fs, name); }
};
/** Feature detectors in OpenCV have wrappers with a common interface that enables you to easily switch
@ -985,7 +989,8 @@ public:
read(fs.root());
}
// Reads matcher object from a file node
virtual void read( const FileNode& );
// see corresponding cv::Algorithm method
CV_WRAP virtual void read( const FileNode& );
// Writes matcher object to a file storage
virtual void write( FileStorage& ) const;
@ -1012,6 +1017,10 @@ public:
CV_WRAP static Ptr<DescriptorMatcher> create( int matcherType );
// see corresponding cv::Algorithm method
CV_WRAP inline void write(const Ptr<FileStorage>& fs, const String& name = String()) const { Algorithm::write(fs, name); }
protected:
/**
* Class to work with descriptors from several images as with one merged matrix.

Loading…
Cancel
Save