Visual Servoing Platform
version 3.2.0 under development (2019-01-22)
|
#include <visp3/core/vpXmlParserCamera.h>
Public Member Functions | |
vpXmlParserCamera () | |
vpXmlParserCamera (vpXmlParserCamera &twinParser) | |
virtual | ~vpXmlParserCamera () |
std::string | getCameraName () |
vpCameraParameters | getCameraParameters () |
unsigned int | getHeight () |
unsigned int | getSubsampling_width () |
unsigned int | getSubsampling_height () |
unsigned int | getWidth () |
vpXmlParserCamera & | operator= (const vpXmlParserCamera &twinparser) |
int | parse (vpCameraParameters &cam, const std::string &filename, const std::string &camera_name, const vpCameraParameters::vpCameraParametersProjType &projModel, const unsigned int image_width=0, const unsigned int image_height=0) |
int | save (const vpCameraParameters &cam, const std::string &filename, const std::string &camera_name, const unsigned int image_width=0, const unsigned int image_height=0, const std::string &additionalInfo="") |
void | setCameraName (const std::string &name) |
void | setHeight (const unsigned int height) |
void | setSubsampling_width (const unsigned int subsampling) |
void | setSubsampling_height (const unsigned int subsampling) |
void | setWidth (const unsigned int width) |
Public Member Functions Inherited from vpXmlParser | |
void | parse (const std::string &filename) |
void | save (const std::string &filename, const bool append=false) |
void | setMap (const std::map< std::string, int > &_map) |
void | setMainTag (const std::string &tag) |
Static Public Member Functions | |
Static Public Member Functions Inherited from vpXmlParser | |
static void | cleanup () |
Protected Member Functions | |
Protected Member Functions Inherited from vpXmlParser | |
bool | xmlReadBoolChild (xmlDocPtr doc, xmlNodePtr node) |
char * | xmlReadCharChild (xmlDocPtr doc, xmlNodePtr node) |
double | xmlReadDoubleChild (xmlDocPtr doc, xmlNodePtr node) |
float | xmlReadFloatChild (xmlDocPtr doc, xmlNodePtr node) |
int | xmlReadIntChild (xmlDocPtr doc, xmlNodePtr node) |
std::string | xmlReadStringChild (xmlDocPtr doc, xmlNodePtr node) |
unsigned int | xmlReadUnsignedIntChild (xmlDocPtr doc, xmlNodePtr node) |
void | xmlWriteBoolChild (xmlNodePtr node, const char *label, const bool value) |
void | xmlWriteCharChild (xmlNodePtr node, const char *label, const char *value) |
void | xmlWriteDoubleChild (xmlNodePtr node, const char *label, const double value) |
void | xmlWriteFloatChild (xmlNodePtr node, const char *label, const float value) |
void | xmlWriteIntChild (xmlNodePtr node, const char *label, const int value) |
void | xmlWriteStringChild (xmlNodePtr node, const char *label, const std::string &value) |
void | xmlWriteUnsignedIntChild (xmlNodePtr node, const char *label, const unsigned int value) |
Protected Attributes | |
std::map< std::string, int > | nodeMap |
std::string | main_tag |
XML parser to load and save intrinsic camera parameters.
To have a complete description of the camera parameters and the corresponding projection model implemented in ViSP, see vpCameraParameters.
Example of an XML file "myXmlFile.xml" containing intrinsic camera parameters:
Example of loading existing camera parameters from an XML file:
Example of writing an XML file containing intrinsic camera parameters:
Definition at line 188 of file vpXmlParserCamera.h.
Enumerator | |
---|---|
SEQUENCE_OK | |
SEQUENCE_ERROR |
Definition at line 216 of file vpXmlParserCamera.h.
Definition at line 194 of file vpXmlParserCamera.h.
vpXmlParserCamera::vpXmlParserCamera | ( | ) |
Default constructor
Definition at line 84 of file vpXmlParserCamera.cpp.
vpXmlParserCamera::vpXmlParserCamera | ( | vpXmlParserCamera & | twinParser | ) |
Copy constructor
twinParser | : parser object to copy |
Definition at line 93 of file vpXmlParserCamera.cpp.
|
inlinevirtual |
Default destructor.
Definition at line 236 of file vpXmlParserCamera.h.
|
inlinestaticinherited |
As stated in http://xmlsoft.org/html/libxml-parser.html#xmlCleanupParser to clean up memory allocated by the xml2 library itself, the user should call xmlCleanupParser() only when the process has finished using the xml2 library. In case of doubt abstain from calling this function or do it just before calling exit() to avoid leak reports from valgrind ! That's why in ViSP the destructor doesn't call xmlCleanupParser(). Rather we provide the static function vpXmlParser::cleanup() that calls xmlCleanupParser() that could be called just before exit().
Definition at line 310 of file vpXmlParser.h.
|
inline |
Definition at line 239 of file vpXmlParserCamera.h.
|
inline |
Definition at line 240 of file vpXmlParserCamera.h.
|
inline |
Definition at line 241 of file vpXmlParserCamera.h.
|
inline |
Definition at line 243 of file vpXmlParserCamera.h.
|
inline |
Definition at line 242 of file vpXmlParserCamera.h.
|
inline |
Definition at line 244 of file vpXmlParserCamera.h.
References vpXmlParser::parse(), and vpXmlParser::save().
vpXmlParserCamera & vpXmlParserCamera::operator= | ( | const vpXmlParserCamera & | twinParser | ) |
Copy operator
twinParser | : parser object to copy |
Definition at line 111 of file vpXmlParserCamera.cpp.
|
inherited |
parse the document. The data in the file are stored in the attributes of the child class. This method calls the readMainClass method which has to be implemented for every child class depending on the content to parse.
filename | : name of the file to parse |
Definition at line 421 of file vpXmlParser.cpp.
References vpException::ioError, vpXmlParser::readMainClass(), and vpERROR_TRACE.
Referenced by vpXmlParserHomogeneousMatrix::getHomogeneousMatrixName(), vpXmlConfigParserKeyPoint::getUseRansacVVSPoseEstimation(), getWidth(), vpMbDepthDenseTracker::loadConfigFile(), vpMbDepthNormalTracker::loadConfigFile(), vpMbEdgeKltTracker::loadConfigFile(), vpMbKltTracker::loadConfigFile(), vpMbEdgeTracker::loadConfigFile(), vpMbTracker::loadConfigFile(), vpXmlConfigParserKeyPoint::parse(), and vpMbGenericTracker::track().
int vpXmlParserCamera::parse | ( | vpCameraParameters & | cam, |
const std::string & | filename, | ||
const std::string & | cam_name, | ||
const vpCameraParameters::vpCameraParametersProjType & | projModel, | ||
const unsigned int | im_width = 0 , |
||
const unsigned int | im_height = 0 |
||
) |
Parse an xml file to load camera parameters.
cam | : camera parameters to fill. |
filename | : name of the xml file to parse |
cam_name | : name of the camera : useful if the xml file has multiple camera parameters. Set as "" if the camera name is not ambiguous. |
projModel | : camera projection model needed. |
im_width | : image width on which camera calibration was performed. Set as 0 if not ambiguous. |
im_height | : image height on which camera calibration was performed. Set as 0 if not ambiguous. |
Definition at line 138 of file vpXmlParserCamera.cpp.
References SEQUENCE_ERROR.
Referenced by vpViper650::getCameraParameters(), vpViper850::getCameraParameters(), vpAfma6::getCameraParameters(), and vpKinect::start().
|
inherited |
Save the content of the class in the file given in parameters. The data of the class are in the child class. This method calls the write_main_class method which has to be implemented for every class depending on the data to save.
filename | : the name of the file used to record the data |
append | : if true and if the file exists, the data will be added to the data already in the file |
Definition at line 453 of file vpXmlParser.cpp.
References vpException::ioError, vpXmlParser::main_tag, vpERROR_TRACE, and vpXmlParser::writeMainClass().
Referenced by vpXmlParserHomogeneousMatrix::getHomogeneousMatrixName(), and getWidth().
int vpXmlParserCamera::save | ( | const vpCameraParameters & | cam, |
const std::string & | filename, | ||
const std::string & | cam_name, | ||
const unsigned int | im_width = 0 , |
||
const unsigned int | im_height = 0 , |
||
const std::string & | additionalInfo = "" |
||
) |
Save camera parameters in an xml file.
cam | : camera parameters to save. |
filename | : name of the xml file to fill. |
cam_name | : name of the camera : useful if the xml file has multiple camera parameters. Set as "" if the camera name is not ambiguous. |
im_width | : width of image on which camera calibration was performed. Set as 0 if not ambiguous. |
im_height | : height of the image on which camera calibration was performed. Set as 0 if not ambiguous. |
additionalInfo | : Additional information added in the saved xml file. The content of this string should be in xml format. |
A typical usage would be the following:
In camera.xml
file, you will see:
Definition at line 208 of file vpXmlParserCamera.cpp.
References CODE_XML_ADDITIONAL_INFO, CODE_XML_BAD, CODE_XML_CAMERA, CODE_XML_CAMERA_NAME, CODE_XML_FULL_HEIGHT, CODE_XML_FULL_WIDTH, CODE_XML_HEIGHT, CODE_XML_KDU, CODE_XML_KUD, CODE_XML_MODEL, CODE_XML_MODEL_TYPE, CODE_XML_OTHER, CODE_XML_PX, CODE_XML_PY, CODE_XML_SUBSAMPLING_HEIGHT, CODE_XML_SUBSAMPLING_WIDTH, CODE_XML_U0, CODE_XML_V0, CODE_XML_WIDTH, vpCameraParameters::get_kdu(), vpCameraParameters::get_kud(), vpCameraParameters::get_projModel(), vpCameraParameters::get_px(), vpCameraParameters::get_py(), vpCameraParameters::get_u0(), vpCameraParameters::get_v0(), vpCameraParameters::initPersProjWithDistortion(), vpCameraParameters::initPersProjWithoutDistortion(), vpCameraParameters::perspectiveProjWithDistortion, vpCameraParameters::perspectiveProjWithoutDistortion, SEQUENCE_ERROR, SEQUENCE_OK, vpCERROR, vpERROR_TRACE, vpXmlParser::xmlReadCharChild(), vpXmlParser::xmlReadDoubleChild(), and vpXmlParser::xmlReadUnsignedIntChild().
|
inline |
Definition at line 256 of file vpXmlParserCamera.h.
|
inline |
Definition at line 257 of file vpXmlParserCamera.h.
|
inlineinherited |
set the name of the main tag
The main tag corresponds to the name of the root node
tag | : name of the root node of the document |
Definition at line 295 of file vpXmlParser.h.
Referenced by vpMbXmlParser::init(), vpMbtXmlGenericParser::init(), and vpXmlConfigParserKeyPoint::vpXmlConfigParserKeyPoint().
|
inlineinherited |
Set the map describing the data to parse. This map stores the name of each node and an associated key used to simplify the parsing of the file.
If the following file want to be parsed:
The following map has to be declared:
Or, you can use keyzord instead of number as key but it implies to declare in the child class an enumeration type of the name. For example:
_map | : the map describing the data to parse |
Definition at line 286 of file vpXmlParser.h.
|
inline |
Definition at line 259 of file vpXmlParserCamera.h.
|
inline |
Definition at line 258 of file vpXmlParserCamera.h.
|
inline |
Definition at line 260 of file vpXmlParserCamera.h.
References vpXmlParser::readMainClass(), and vpXmlParser::writeMainClass().
|
protectedinherited |
read a boolean
doc | : The main xml document |
node | : a pointer to the node to read value |
Definition at line 282 of file vpXmlParser.cpp.
References vpException::fatalError.
|
protectedinherited |
Read an array of character.
doc | : The main xml document |
node | : a pointer to the node to read value |
Definition at line 100 of file vpXmlParser.cpp.
References vpException::fatalError.
Referenced by vpMbtXmlGenericParser::read_projection_error(), vpXmlParserHomogeneousMatrix::save(), and save().
|
protectedinherited |
read a double
doc | : The main xml document |
node | : a pointer to the node to read value |
Definition at line 212 of file vpXmlParser.cpp.
References vpException::fatalError, and vpException::ioError.
Referenced by vpXmlConfigParserKeyPoint::parse(), vpMbXmlParser::read_camera(), vpMbtXmlGenericParser::read_camera(), vpMbtXmlParser::read_contrast(), vpMbtXmlGenericParser::read_depth_normal_PCL(), vpMbtXmlGenericParser::read_ecm_contrast(), vpMbXmlParser::read_face(), vpMbtXmlGenericParser::read_face(), vpMbtKltXmlParser::read_klt(), vpMbtXmlGenericParser::read_klt(), vpMbXmlParser::read_lod(), vpMbtXmlGenericParser::read_lod(), vpXmlParserRectOriented::readMainClass(), vpXmlParserHomogeneousMatrix::save(), and save().
|
protectedinherited |
read a float
doc | : The main xml document |
node | : a pointer to the node to read value |
Definition at line 245 of file vpXmlParser.cpp.
References vpException::fatalError, and vpException::ioError.
|
protectedinherited |
read an int
doc | : The main xml document |
node | : a pointer to the node to read value |
Definition at line 144 of file vpXmlParser.cpp.
References vpException::fatalError, and vpException::ioError.
Referenced by vpXmlConfigParserKeyPoint::parse(), vpMbtXmlGenericParser::read_depth_normal(), vpMbtXmlGenericParser::read_depth_normal_PCL(), vpMbtXmlGenericParser::read_ecm_sample(), vpMbXmlParser::read_face(), vpMbtXmlGenericParser::read_face(), vpMbXmlParser::read_lod(), vpMbtXmlGenericParser::read_lod(), vpMbtXmlGenericParser::read_projection_error(), vpMbtXmlParser::read_sample(), vpMbtXmlParser::read_sample_deprecated(), and vpMbtXmlGenericParser::read_sample_deprecated().
|
protectedinherited |
Read an array of character.
doc | : The main xml document |
node | : a pointer to the node to read value |
Definition at line 120 of file vpXmlParser.cpp.
References vpException::fatalError.
Referenced by vpXmlConfigParserKeyPoint::parse().
|
protectedinherited |
read an int
doc | : The main xml document |
node | : a pointer to the node to read value |
Definition at line 178 of file vpXmlParser.cpp.
References vpException::fatalError, and vpException::ioError.
Referenced by vpMbtXmlGenericParser::read_depth_dense_sampling_step(), vpMbtXmlGenericParser::read_depth_normal_sampling_step(), vpMbtXmlGenericParser::read_ecm_mask(), vpMbtXmlGenericParser::read_ecm_range(), vpMbtKltXmlParser::read_klt(), vpMbtXmlGenericParser::read_klt(), vpMbtXmlParser::read_mask(), vpMbtXmlParser::read_range(), and save().
|
protectedinherited |
write a bool.
node | : a pointer to the node to read value |
label | : label (name of the data) of the node |
value | : boolean to write (true or false) |
Definition at line 398 of file vpXmlParser.cpp.
|
protectedinherited |
write an array of character.
node | : a pointer to the node to read value |
label | : label (name of the data) of the node |
value | : pointer to the array of character to write |
Definition at line 306 of file vpXmlParser.cpp.
|
protectedinherited |
write a double.
node | : a pointer to the node to read value |
label | : label (name of the data) of the node |
value | : double to write |
Definition at line 366 of file vpXmlParser.cpp.
Referenced by vpXmlParserRectOriented::writeMainClass().
|
protectedinherited |
write a float.
node | : a pointer to the node to read value |
label | : label (name of the data) of the node |
value | : float to write |
Definition at line 382 of file vpXmlParser.cpp.
|
protectedinherited |
write an integer.
node | : a pointer to the node to read value |
label | : label (name of the data) of the node |
value | : integer to write |
Definition at line 334 of file vpXmlParser.cpp.
|
protectedinherited |
write an array of character.
node | : a pointer to the node to read value |
label | : label (name of the data) of the node |
value | : std::string to write; |
Definition at line 320 of file vpXmlParser.cpp.
|
protectedinherited |
write an unsigned integer.
node | : a pointer to the node to read value |
label | : label (name of the data) of the node |
value | : unsigned integer to write |
Definition at line 350 of file vpXmlParser.cpp.
|
protectedinherited |
The name of the main tag for the file to parse
Definition at line 231 of file vpXmlParser.h.
Referenced by vpXmlParser::save().
|
protectedinherited |
The map describing the data to parse
Definition at line 226 of file vpXmlParser.h.
Referenced by vpMbtEdgeKltXmlParser::init(), vpMbtXmlParser::init(), vpMbtKltXmlParser::init(), vpMbXmlParser::init(), vpMbtXmlGenericParser::init(), vpXmlConfigParserKeyPoint::parse(), vpMbXmlParser::read_camera(), vpMbtXmlGenericParser::read_camera(), vpMbtXmlParser::read_contrast(), vpMbtXmlGenericParser::read_depth_dense(), vpMbtXmlGenericParser::read_depth_dense_sampling_step(), vpMbtXmlGenericParser::read_depth_normal(), vpMbtXmlGenericParser::read_depth_normal_PCL(), vpMbtXmlGenericParser::read_depth_normal_sampling_step(), vpMbtXmlParser::read_ecm(), vpMbtXmlGenericParser::read_ecm(), vpMbtXmlGenericParser::read_ecm_contrast(), vpMbtXmlGenericParser::read_ecm_mask(), vpMbtXmlGenericParser::read_ecm_range(), vpMbtXmlGenericParser::read_ecm_sample(), vpMbXmlParser::read_face(), vpMbtXmlGenericParser::read_face(), vpMbtKltXmlParser::read_klt(), vpMbtXmlGenericParser::read_klt(), vpMbXmlParser::read_lod(), vpMbtXmlGenericParser::read_lod(), vpMbtXmlParser::read_mask(), vpMbtXmlGenericParser::read_projection_error(), vpMbtXmlParser::read_range(), vpMbtXmlParser::read_sample(), vpMbtXmlParser::read_sample_deprecated(), vpMbtXmlGenericParser::read_sample_deprecated(), vpMbtEdgeKltXmlParser::readMainClass(), vpMbtXmlParser::readMainClass(), vpXmlParserRectOriented::readMainClass(), vpMbtKltXmlParser::readMainClass(), vpMbXmlParser::readMainClass(), vpMbtXmlGenericParser::readMainClass(), vpXmlConfigParserKeyPoint::vpXmlConfigParserKeyPoint(), and vpXmlParserRectOriented::vpXmlParserRectOriented().