Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
26bd6b3f
Commit
26bd6b3f
authored
Jul 27, 2011
by
Bernat Gabor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added the File Input and Output using XML and YAML files tutorial.
parent
f7ff65f5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
56 additions
and
24 deletions
+56
-24
conf.py
doc/conf.py
+1
-0
file_input_output_with_xml_yml.rst
...ut_output_with_xml_yml/file_input_output_with_xml_yml.rst
+0
-0
file_input_output_with_xml_yml.png
...of_content_core/images/file_input_output_with_xml_yml.png
+0
-0
table_of_content_core.rst
...ials/core/table_of_content_core/table_of_content_core.rst
+23
-2
file_input_output.cpp
...utorial_code/core/file_input_output/file_input_output.cpp
+32
-22
No files found.
doc/conf.py
View file @
26bd6b3f
...
...
@@ -354,6 +354,7 @@ extlinks = {'cvt_color': ('http://opencv.willowgarage.com/documentation/cpp/imgp
'utilitysystemfunctions'
:(
'http://opencv.itseez.com/modules/core/doc/utility_and_system_functions_and_macros.html#
%
s'
,
None
),
'imgprocfilter'
:(
'http://opencv.itseez.com/modules/imgproc/doc/filtering.html#
%
s'
,
None
),
'svms'
:(
'http://opencv.itseez.com/modules/ml/doc/support_vector_machines.html#
%
s'
,
None
),
'xmlymlpers'
:(
'http://opencv.itseez.com/modules/core/doc/xml_yaml_persistence.html#
%
s'
,
None
),
'point_polygon_test'
:
(
'http://opencv.willowgarage.com/documentation/cpp/imgproc_structural_analysis_and_shape_descriptors.html#cv-pointpolygontest
%
s'
,
None
)
}
...
...
doc/tutorials/core/file_input_output_with_xml_yml/file_input_output_with_xml_yml.rst
0 → 100644
View file @
26bd6b3f
This diff is collapsed.
Click to expand it.
doc/tutorials/core/table_of_content_core/images/file_input_output_with_xml_yml.png
0 → 100644
View file @
26bd6b3f
5.39 KB
doc/tutorials/core/table_of_content_core/table_of_content_core.rst
View file @
26bd6b3f
...
...
@@ -110,7 +110,7 @@ Here you will learn the about the basic building blocks of the library. A must r
.. cssclass:: toctableopencv
=============== ======================================================
|Beginners_7| **Title:**
*
:ref:`Drawing_2`
|Beginners_7| **Title:** :ref:`Drawing_2`
*Compatibility:* > OpenCV 2.0
...
...
@@ -129,7 +129,7 @@ Here you will learn the about the basic building blocks of the library. A must r
.. cssclass:: toctableopencv
=============== ======================================================
|DiscFourTr| **Title:**
*
:ref:`discretFourierTransform`
|DiscFourTr| **Title:** :ref:`discretFourierTransform`
*Compatibility:* > OpenCV 2.0
...
...
@@ -143,6 +143,25 @@ Here you will learn the about the basic building blocks of the library. A must r
:height: 90pt
:width: 90pt
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=============== ======================================================
|FileIOXMLYAML| **Title:** :ref:`fileInputOutputXMLYAML`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_BernatG|
You will see how to use the :xmlymlpers:`FileStorage <filestorage>` data structure of OpenCV to write and read data to XML or YAML file format.
=============== ======================================================
.. |FileIOXMLYAML| image:: images/file_input_output_with_xml_yml.png
:height: 90pt
:width: 90pt
.. raw:: latex
\pagebreak
...
...
@@ -158,3 +177,4 @@ Here you will learn the about the basic building blocks of the library. A must r
../random_generator_and_text/random_generator_and_text
../mat-mask-operations/mat-mask-operations
../discrete_fourier_transform/discrete_fourier_transform
../file_input_output_with_xml_yml/file_input_output_with_xml_yml
\ No newline at end of file
samples/cpp/tutorial_code/core/file_input_output/file_input_output.cpp
View file @
26bd6b3f
#include
"opencv2/core/core.hpp"
#include
<opencv2/core/core.hpp>
#include <iostream>
#include <string>
using
namespace
std
;
using
namespace
cv
;
using
namespace
std
;
void
help
(
char
**
av
)
{
...
...
@@ -25,7 +25,6 @@ public:
{}
explicit
MyData
(
int
)
:
A
(
97
),
X
(
CV_PI
),
id
(
"mydata1234"
)
// explicit to avoid implicit conversion
{}
void
write
(
FileStorage
&
fs
)
const
//Write serialization for this class
{
fs
<<
"{"
<<
"A"
<<
A
<<
"X"
<<
X
<<
"id"
<<
id
<<
"}"
;
...
...
@@ -72,34 +71,40 @@ int main(int ac, char** av)
}
string
filename
=
av
[
1
];
//write
{
Mat
R
=
Mat_
<
double
>::
eye
(
3
,
3
),
{
//write
Mat
R
=
Mat_
<
uchar
>::
eye
(
3
,
3
),
T
=
Mat_
<
double
>::
zeros
(
3
,
1
);
MyData
m
(
1
);
FileStorage
fs
(
filename
,
FileStorage
::
WRITE
);
fs
<<
"strings"
<<
"["
;
fs
<<
"iterationNr"
<<
100
;
fs
<<
"strings"
<<
"["
;
// text - string sequence
fs
<<
"image1.jpg"
<<
"Awesomeness"
<<
"baboon.jpg"
;
fs
<<
"]"
;
fs
<<
"]"
;
// close sequence
fs
<<
"R"
<<
R
;
fs
<<
"Mapping"
;
// text - mapping
fs
<<
"{"
<<
"One"
<<
1
;
fs
<<
"Two"
<<
2
<<
"}"
;
fs
<<
"R"
<<
R
;
// cv::Mat
fs
<<
"T"
<<
T
;
fs
<<
"MyData"
<<
m
;
fs
<<
"MyData"
<<
m
;
// your own data structures
fs
.
release
();
// explicit close
cout
<<
"Write Done."
<<
endl
;
}
//read
{
{
//read
cout
<<
endl
<<
"Reading: "
<<
endl
;
FileStorage
fs
(
filename
,
FileStorage
::
READ
);
FileStorage
fs
;
fs
.
open
(
filename
,
FileStorage
::
READ
);
int
itNr
;
//fs["iterationNr"] >> itNr;
itNr
=
(
int
)
fs
[
"iterationNr"
];
cout
<<
itNr
;
if
(
!
fs
.
isOpened
())
{
cerr
<<
"Failed to open "
<<
filename
<<
endl
;
...
...
@@ -107,27 +112,32 @@ int main(int ac, char** av)
return
1
;
}
FileNode
n
=
fs
[
"strings"
];
FileNode
n
=
fs
[
"strings"
];
// Read string sequence - Get node
if
(
n
.
type
()
!=
FileNode
::
SEQ
)
{
cerr
<<
"strings is not a sequence! FAIL"
<<
endl
;
return
1
;
}
FileNodeIterator
it
=
n
.
begin
(),
it_end
=
n
.
end
();
FileNodeIterator
it
=
n
.
begin
(),
it_end
=
n
.
end
();
// Go through the node
for
(;
it
!=
it_end
;
++
it
)
cout
<<
(
string
)
*
it
<<
endl
;
n
=
fs
[
"Mapping"
];
// Read mappings from a sequence
cout
<<
"Two "
<<
(
int
)(
n
[
"Two"
])
<<
"; "
;
cout
<<
"One "
<<
(
int
)(
n
[
"One"
])
<<
endl
<<
endl
;
MyData
m
;
Mat
R
,
T
;
fs
[
"R"
]
>>
R
;
fs
[
"R"
]
>>
R
;
// Read cv::Mat
fs
[
"T"
]
>>
T
;
fs
[
"MyData"
]
>>
m
;
fs
[
"MyData"
]
>>
m
;
// Read your own structure_
cout
<<
endl
<<
"R = "
<<
R
<<
"
\n
"
;
<<
"R = "
<<
R
<<
endl
;
cout
<<
"T = "
<<
T
<<
endl
<<
endl
;
cout
<<
"MyData = "
<<
endl
<<
m
<<
endl
<<
endl
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment