mirror of
https://github.com/opencv/opencv.git
synced 2024-11-29 22:00:25 +08:00
Merge pull request #13123 from dkurt:fs_keys
This commit is contained in:
commit
e31eb46123
@ -526,6 +526,11 @@ public:
|
||||
*/
|
||||
CV_WRAP_AS(at) FileNode operator[](int i) const;
|
||||
|
||||
/** @brief Returns keys of a mapping node.
|
||||
@returns Keys of a mapping node.
|
||||
*/
|
||||
CV_WRAP std::vector<String> keys() const;
|
||||
|
||||
/** @brief Returns type of the node.
|
||||
@returns Type of the node. See FileNode::Type
|
||||
*/
|
||||
|
@ -2083,6 +2083,19 @@ FileNode FileNode::operator[](int i) const
|
||||
return *it;
|
||||
}
|
||||
|
||||
std::vector<String> FileNode::keys() const
|
||||
{
|
||||
CV_Assert(isMap());
|
||||
|
||||
std::vector<String> res;
|
||||
res.reserve(size());
|
||||
for (FileNodeIterator it = begin(); it != end(); ++it)
|
||||
{
|
||||
res.push_back((*it).name());
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
int FileNode::type() const
|
||||
{
|
||||
const uchar* p = ptr();
|
||||
|
@ -1565,6 +1565,12 @@ TEST(Core_InputOutput, FileStorage_json_bool)
|
||||
ASSERT_EQ((int)fs["map_value"]["bool_true"], 1);
|
||||
ASSERT_EQ((std::string)fs["map_value"]["str_false"], "false");
|
||||
ASSERT_EQ((int)fs["bool_false"], 0);
|
||||
|
||||
std::vector<String> keys = fs["map_value"].keys();
|
||||
ASSERT_EQ((int)keys.size(), 3);
|
||||
ASSERT_EQ(keys[0], "int_value");
|
||||
ASSERT_EQ(keys[1], "bool_true");
|
||||
ASSERT_EQ(keys[2], "str_false");
|
||||
fs.release();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user