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; } 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 /** @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 /** @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 /** @brief Reads algorithm from the file node

@ -55,6 +55,19 @@ Algorithm::~Algorithm()
CV_TRACE_FUNCTION(); 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 void Algorithm::save(const String& filename) const
{ {
CV_TRACE_FUNCTION(); CV_TRACE_FUNCTION();

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

Loading…
Cancel
Save