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
...
@@ -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
),
'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
),
'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
),
'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
)
'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
...
@@ -110,7 +110,7 @@ Here you will learn the about the basic building blocks of the library. A must r
.. cssclass:: toctableopencv
.. cssclass:: toctableopencv
=============== ======================================================
=============== ======================================================
|Beginners_7| **Title:**
*
:ref:`Drawing_2`
|Beginners_7| **Title:** :ref:`Drawing_2`
*Compatibility:* > OpenCV 2.0
*Compatibility:* > OpenCV 2.0
...
@@ -129,7 +129,7 @@ Here you will learn the about the basic building blocks of the library. A must r
...
@@ -129,7 +129,7 @@ Here you will learn the about the basic building blocks of the library. A must r
.. cssclass:: toctableopencv
.. cssclass:: toctableopencv
=============== ======================================================
=============== ======================================================
|DiscFourTr| **Title:**
*
:ref:`discretFourierTransform`
|DiscFourTr| **Title:** :ref:`discretFourierTransform`
*Compatibility:* > OpenCV 2.0
*Compatibility:* > OpenCV 2.0
...
@@ -143,6 +143,25 @@ Here you will learn the about the basic building blocks of the library. A must r
...
@@ -143,6 +143,25 @@ Here you will learn the about the basic building blocks of the library. A must r
:height: 90pt
:height: 90pt
:width: 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
.. raw:: latex
\pagebreak
\pagebreak
...
@@ -158,3 +177,4 @@ Here you will learn the about the basic building blocks of the library. A must r
...
@@ -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
../random_generator_and_text/random_generator_and_text
../mat-mask-operations/mat-mask-operations
../mat-mask-operations/mat-mask-operations
../discrete_fourier_transform/discrete_fourier_transform
../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 <iostream>
#include <string>
#include <string>
using
namespace
std
;
using
namespace
cv
;
using
namespace
cv
;
using
namespace
std
;
void
help
(
char
**
av
)
void
help
(
char
**
av
)
{
{
...
@@ -25,7 +25,6 @@ public:
...
@@ -25,7 +25,6 @@ public:
{}
{}
explicit
MyData
(
int
)
:
A
(
97
),
X
(
CV_PI
),
id
(
"mydata1234"
)
// explicit to avoid implicit conversion
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
void
write
(
FileStorage
&
fs
)
const
//Write serialization for this class
{
{
fs
<<
"{"
<<
"A"
<<
A
<<
"X"
<<
X
<<
"id"
<<
id
<<
"}"
;
fs
<<
"{"
<<
"A"
<<
A
<<
"X"
<<
X
<<
"id"
<<
id
<<
"}"
;
...
@@ -72,34 +71,40 @@ int main(int ac, char** av)
...
@@ -72,34 +71,40 @@ int main(int ac, char** av)
}
}
string
filename
=
av
[
1
];
string
filename
=
av
[
1
];
{
//write
//write
Mat
R
=
Mat_
<
uchar
>::
eye
(
3
,
3
),
{
Mat
R
=
Mat_
<
double
>::
eye
(
3
,
3
),
T
=
Mat_
<
double
>::
zeros
(
3
,
1
);
T
=
Mat_
<
double
>::
zeros
(
3
,
1
);
MyData
m
(
1
);
MyData
m
(
1
);
FileStorage
fs
(
filename
,
FileStorage
::
WRITE
);
FileStorage
fs
(
filename
,
FileStorage
::
WRITE
);
fs
<<
"iterationNr"
<<
100
;
fs
<<
"strings"
<<
"["
;
fs
<<
"strings"
<<
"["
;
// text - string sequence
fs
<<
"image1.jpg"
<<
"Awesomeness"
<<
"baboon.jpg"
;
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
<<
"T"
<<
T
;
fs
<<
"MyData"
<<
m
;
fs
<<
"MyData"
<<
m
;
// your own data structures
fs
.
release
();
// explicit close
cout
<<
"Write Done."
<<
endl
;
cout
<<
"Write Done."
<<
endl
;
}
}
//read
{
//read
{
cout
<<
endl
<<
"Reading: "
<<
endl
;
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
())
if
(
!
fs
.
isOpened
())
{
{
cerr
<<
"Failed to open "
<<
filename
<<
endl
;
cerr
<<
"Failed to open "
<<
filename
<<
endl
;
...
@@ -107,27 +112,32 @@ int main(int ac, char** av)
...
@@ -107,27 +112,32 @@ int main(int ac, char** av)
return
1
;
return
1
;
}
}
FileNode
n
=
fs
[
"strings"
];
FileNode
n
=
fs
[
"strings"
];
// Read string sequence - Get node
if
(
n
.
type
()
!=
FileNode
::
SEQ
)
if
(
n
.
type
()
!=
FileNode
::
SEQ
)
{
{
cerr
<<
"strings is not a sequence! FAIL"
<<
endl
;
cerr
<<
"strings is not a sequence! FAIL"
<<
endl
;
return
1
;
return
1
;
}
}
FileNodeIterator
it
=
n
.
begin
(),
it_end
=
n
.
end
();
// Go through the node
FileNodeIterator
it
=
n
.
begin
(),
it_end
=
n
.
end
();
for
(;
it
!=
it_end
;
++
it
)
for
(;
it
!=
it_end
;
++
it
)
cout
<<
(
string
)
*
it
<<
endl
;
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
;
MyData
m
;
Mat
R
,
T
;
Mat
R
,
T
;
fs
[
"R"
]
>>
R
;
fs
[
"R"
]
>>
R
;
// Read cv::Mat
fs
[
"T"
]
>>
T
;
fs
[
"T"
]
>>
T
;
fs
[
"MyData"
]
>>
m
;
fs
[
"MyData"
]
>>
m
;
// Read your own structure_
cout
<<
endl
cout
<<
endl
<<
"R = "
<<
R
<<
"
\n
"
;
<<
"R = "
<<
R
<<
endl
;
cout
<<
"T = "
<<
T
<<
endl
<<
endl
;
cout
<<
"T = "
<<
T
<<
endl
<<
endl
;
cout
<<
"MyData = "
<<
endl
<<
m
<<
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