XML/YAML/JSON file storage class that encapsulates all the information necessary for writing or reading data to/from a file. More...
#include <opencv2/core/persistence.hpp>
Public Types | |
enum | Mode { READ = 0, WRITE = 1, APPEND = 2, MEMORY = 4, FORMAT_MASK = (7<<3), FORMAT_AUTO = 0, FORMAT_XML = (1<<3), FORMAT_YAML = (2<<3), FORMAT_JSON = (3<<3), BASE64 = 64, WRITE_BASE64 = BASE64 | WRITE } |
file storage mode More... | |
enum | State { UNDEFINED = 0, VALUE_EXPECTED = 1, NAME_EXPECTED = 2, INSIDE_MAP = 4 } |
Public Member Functions | |
FileStorage () | |
The constructors. More... | |
FileStorage (const String &filename, int flags, const String &encoding=String()) | |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
virtual | ~FileStorage () |
the destructor. calls release() More... | |
void | endWriteStruct () |
FileNode | getFirstTopLevelNode () const |
Returns the first element of the top-level mapping. More... | |
int | getFormat () const |
Returns the current format. More... | |
virtual bool | isOpened () const |
Checks whether the file is opened. More... | |
virtual bool | open (const String &filename, int flags, const String &encoding=String()) |
Opens a file. More... | |
FileNode | operator[] (const String &nodename) const |
Returns the specified element of the top-level mapping. More... | |
FileNode | operator[] (const char *nodename) const |
virtual void | release () |
Closes the file and releases all the memory buffers. More... | |
virtual String | releaseAndGetString () |
Closes the file and releases all the memory buffers. More... | |
FileNode | root (int streamidx=0) const |
Returns the top-level mapping. More... | |
void | startWriteStruct (const String &name, int flags, const String &typeName) |
void | write (const String &name, int val) |
Simplified writing API to use with bindings. More... | |
void | write (const String &name, double val) |
void | write (const String &name, const String &val) |
void | write (const String &name, const Mat &val) |
void | write (const String &name, const std::vector< String > &val) |
void | writeComment (const String &comment, bool append=false) |
Writes a comment. More... | |
void | writeRaw (const String &fmt, const void *vec, size_t len) |
Writes multiple numbers. More... | |
Static Public Member Functions | |
static String | getDefaultObjectName (const String &filename) |
Returns the normalized object name for the specified name of a file. More... | |
Public Attributes | |
std::string | elname |
Ptr< Impl > | p |
int | state |
Related Functions | |
(Note that these are not member functions.) | |
FileStorage & | operator<< (FileStorage &fs, const String &str) |
Writes string to a file storage. More... | |
void | write (FileStorage &fs, const String &name, int value) |
void | write (FileStorage &fs, const String &name, float value) |
void | write (FileStorage &fs, const String &name, double value) |
void | write (FileStorage &fs, const String &name, const String &value) |
void | write (FileStorage &fs, const String &name, const Mat &value) |
void | write (FileStorage &fs, const String &name, const SparseMat &value) |
void | writeScalar (FileStorage &fs, int value) |
void | writeScalar (FileStorage &fs, float value) |
void | writeScalar (FileStorage &fs, double value) |
void | writeScalar (FileStorage &fs, const String &value) |
template<typename _Tp > | |
static void | write (FileStorage &fs, const _Tp &value) |
template<> | |
void | write (FileStorage &fs, const int &value) |
template<> | |
void | write (FileStorage &fs, const float &value) |
template<> | |
void | write (FileStorage &fs, const double &value) |
template<> | |
void | write (FileStorage &fs, const String &value) |
template<typename _Tp > | |
static void | write (FileStorage &fs, const Point_< _Tp > &pt) |
template<typename _Tp > | |
static void | write (FileStorage &fs, const Point3_< _Tp > &pt) |
template<typename _Tp > | |
static void | write (FileStorage &fs, const Size_< _Tp > &sz) |
template<typename _Tp > | |
static void | write (FileStorage &fs, const Complex< _Tp > &c) |
template<typename _Tp > | |
static void | write (FileStorage &fs, const Rect_< _Tp > &r) |
template<typename _Tp , int cn> | |
static void | write (FileStorage &fs, const Vec< _Tp, cn > &v) |
template<typename _Tp , int m, int n> | |
static void | write (FileStorage &fs, const Matx< _Tp, m, n > &x) |
template<typename _Tp > | |
static void | write (FileStorage &fs, const Scalar_< _Tp > &s) |
static void | write (FileStorage &fs, const Range &r) |
template<typename _Tp > | |
static void | write (FileStorage &fs, const std::vector< _Tp > &vec) |
template<typename _Tp > | |
static void | write (FileStorage &fs, const String &name, const Point_< _Tp > &pt) |
template<typename _Tp > | |
static void | write (FileStorage &fs, const String &name, const Point3_< _Tp > &pt) |
template<typename _Tp > | |
static void | write (FileStorage &fs, const String &name, const Size_< _Tp > &sz) |
template<typename _Tp > | |
static void | write (FileStorage &fs, const String &name, const Complex< _Tp > &c) |
template<typename _Tp > | |
static void | write (FileStorage &fs, const String &name, const Rect_< _Tp > &r) |
template<typename _Tp , int cn> | |
static void | write (FileStorage &fs, const String &name, const Vec< _Tp, cn > &v) |
template<typename _Tp , int m, int n> | |
static void | write (FileStorage &fs, const String &name, const Matx< _Tp, m, n > &x) |
template<typename _Tp > | |
static void | write (FileStorage &fs, const String &name, const Scalar_< _Tp > &s) |
static void | write (FileStorage &fs, const String &name, const Range &r) |
static void | write (FileStorage &fs, const String &name, const KeyPoint &kpt) |
static void | write (FileStorage &fs, const String &name, const DMatch &m) |
template<typename _Tp , typename std::enable_if< std::is_enum< _Tp >::value >::type * = nullptr> | |
static void | write (FileStorage &fs, const String &name, const _Tp &val) |
template<typename _Tp > | |
static void | write (FileStorage &fs, const String &name, const std::vector< _Tp > &vec) |
template<typename _Tp > | |
static void | write (FileStorage &fs, const String &name, const std::vector< std::vector< _Tp > > &vec) |
template<typename _Tp > | |
static FileStorage & | operator<< (FileStorage &fs, const _Tp &value) |
Writes data to a file storage. More... | |
static FileStorage & | operator<< (FileStorage &fs, const char *str) |
Writes data to a file storage. More... | |
static FileStorage & | operator<< (FileStorage &fs, char *value) |
Writes data to a file storage. More... | |
XML/YAML/JSON file storage class that encapsulates all the information necessary for writing or reading data to/from a file.
file storage mode
Enumerator | |
---|---|
READ | value, open the file for reading |
WRITE | value, open the file for writing |
APPEND | value, open the file for appending |
MEMORY | flag, read data from source or write data to the internal buffer (which is returned by FileStorage::release) |
FORMAT_MASK | mask for format flags |
FORMAT_AUTO | flag, auto format |
FORMAT_XML | flag, XML format |
FORMAT_YAML | flag, YAML format |
FORMAT_JSON | flag, JSON format |
BASE64 | flag, write rawdata in Base64 by default. (consider using WRITE_BASE64) |
WRITE_BASE64 | flag, enable both WRITE and BASE64 |
cv::FileStorage::FileStorage | ( | ) |
The constructors.
The full constructor opens the file. Alternatively you can use the default constructor and then call FileStorage::open.
cv::FileStorage::FileStorage | ( | const String & | filename, |
int | flags, | ||
const String & | encoding = String() |
||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Opens a file. See description of parameters in FileStorage::FileStorage. The method calls FileStorage::release before opening the file.
filename | Name of the file to open or the text string to read the data from. Extension of the file (.xml, .yml/.yaml or .json) determines its format (XML, YAML or JSON respectively). Also you can append .gz to work with compressed files, for example myHugeMatrix.xml.gz. If both FileStorage::WRITE and FileStorage::MEMORY flags are specified, source is used just to specify the output file format (e.g. mydata.xml, .yml etc.). A file name can also contain parameters. You can use this format, "*?base64" (e.g. "file.json?base64" (case sensitive)), as an alternative to FileStorage::BASE64 flag. |
flags | Mode of operation. One of FileStorage::Mode |
encoding | Encoding of the file. Note that UTF-16 XML encoding is not supported currently and you should use 8-bit encoding instead of it. |
|
virtual |
the destructor. calls release()
void cv::FileStorage::endWriteStruct | ( | ) |
Returns the normalized object name for the specified name of a file.
filename | Name of a file |
FileNode cv::FileStorage::getFirstTopLevelNode | ( | ) | const |
Returns the first element of the top-level mapping.
Referenced by cv::Algorithm::load(), and cv::Algorithm::loadFromString().
int cv::FileStorage::getFormat | ( | ) | const |
Returns the current format.
|
virtual |
Checks whether the file is opened.
Referenced by cv::Algorithm::load(), and operator<<().
|
virtual |
Opens a file.
See description of parameters in FileStorage::FileStorage. The method calls FileStorage::release before opening the file.
filename | Name of the file to open or the text string to read the data from. Extension of the file (.xml, .yml/.yaml or .json) determines its format (XML, YAML or JSON respectively). Also you can append .gz to work with compressed files, for example myHugeMatrix.xml.gz. If both FileStorage::WRITE and FileStorage::MEMORY flags are specified, source is used just to specify the output file format (e.g. mydata.xml, .yml etc.). A file name can also contain parameters. You can use this format, "*?base64" (e.g. "file.json?base64" (case sensitive)), as an alternative to FileStorage::BASE64 flag. |
flags | Mode of operation. One of FileStorage::Mode |
encoding | Encoding of the file. Note that UTF-16 XML encoding is not supported currently and you should use 8-bit encoding instead of it. |
Returns the specified element of the top-level mapping.
nodename | Name of the file node. |
FileNode cv::FileStorage::operator[] | ( | const char * | nodename | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
virtual |
Closes the file and releases all the memory buffers.
Call this method after all I/O operations with the storage are finished.
|
virtual |
Closes the file and releases all the memory buffers.
Call this method after all I/O operations with the storage are finished. If the storage was opened for writing data and FileStorage::WRITE was specified
FileNode cv::FileStorage::root | ( | int | streamidx = 0 | ) | const |
Returns the top-level mapping.
streamidx | Zero-based index of the stream. In most cases there is only one stream in the file. However, YAML supports multiple streams and so there can be several. |
Referenced by cv::DescriptorMatcher::read().
void cv::FileStorage::write | ( | const String & | name, |
int | val | ||
) |
Simplified writing API to use with bindings.
name | Name of the written object |
val | Value of the written object |
void cv::FileStorage::write | ( | const String & | name, |
double | val | ||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void cv::FileStorage::writeComment | ( | const String & | comment, |
bool | append = false |
||
) |
Writes a comment.
The function writes a comment into file storage. The comments are skipped when the storage is read.
comment | The written comment, single-line or multi-line |
append | If true, the function tries to put the comment at the end of current line. Else if the comment is multi-line, or if it does not fit at the end of the current line, the comment starts a new line. |
void cv::FileStorage::writeRaw | ( | const String & | fmt, |
const void * | vec, | ||
size_t | len | ||
) |
Writes multiple numbers.
Writes one or more numbers of the specified format to the currently written structure. Usually it is more convenient to use operator <<
instead of this method.
fmt | Specification of each array element, see format specification |
vec | Pointer to the written array. |
len | Number of the uchar elements to write. |
Referenced by cv::FileNode::read().
|
related |
Writes string to a file storage.
|
related |
Writes data to a file storage.
References CV_Error, elname, INSIDE_MAP, isOpened(), NAME_EXPECTED, state, and cv::Error::StsError.
|
related |
Writes data to a file storage.
|
related |
Writes data to a file storage.
|
related |
|
related |
|
related |
|
related |
|
related |
|
related |
|
related |
|
related |
|
related |
|
related |
|
related |
|
related |
References cv::Point_< _Tp >::x, and cv::Point_< _Tp >::y.
|
related |
References cv::Point3_< _Tp >::x, cv::Point3_< _Tp >::y, and cv::Point3_< _Tp >::z.
|
related |
References cv::Size_< _Tp >::height, and cv::Size_< _Tp >::width.
|
related |
References cv::Complex< _Tp >::im, and cv::Complex< _Tp >::re.
|
related |
References cv::Rect_< _Tp >::height, cv::Rect_< _Tp >::width, cv::Rect_< _Tp >::x, and cv::Rect_< _Tp >::y.
|
related |
References cv::Matx< _Tp, cn, 1 >::val.
|
related |
|
related |
References cv::Matx< _Tp, cn, 1 >::val.
|
related |
References cv::Range::end, and cv::Range::start.
|
related |
|
related |
References cv::FileNode::FLOW, and cv::FileNode::SEQ.
|
related |
References cv::FileNode::FLOW, and cv::FileNode::SEQ.
|
related |
References cv::FileNode::FLOW, and cv::FileNode::SEQ.
|
related |
References cv::FileNode::FLOW, and cv::FileNode::SEQ.
|
related |
References cv::FileNode::FLOW, and cv::FileNode::SEQ.
|
related |
References cv::FileNode::FLOW, and cv::FileNode::SEQ.
|
related |
|
related |
References cv::FileNode::FLOW, and cv::FileNode::SEQ.
|
related |
References cv::FileNode::FLOW, and cv::FileNode::SEQ.
|
related |
|
related |
|
related |
|
related |
References cv::FileNode::FLOW, and cv::FileNode::SEQ.
|
related |
References cv::FileNode::FLOW, and cv::FileNode::SEQ.
|
related |
|
related |
|
related |
|
related |
std::string cv::FileStorage::elname |
Referenced by operator<<().
Ptr<Impl> cv::FileStorage::p |
int cv::FileStorage::state |
Referenced by operator<<().