ViSP  2.9.0
tutorial-undistort.cpp
1 
2 #include <visp/vpImageIo.h>
3 #include <visp/vpImageTools.h>
4 #include <visp/vpXmlParserCamera.h>
5 
6 int main()
7 {
8  try {
10  vpImageIo::read(I, "chessboard.pgm");
11 
13 #ifdef VISP_HAVE_XML2
17  if (p.parse(cam, "camera.xml", "Camera", projModel, I.getWidth(), I.getHeight()) != vpXmlParserCamera::SEQUENCE_OK) {
18  std::cout << "Cannot found parameters for camera named \"Camera\"" << std::endl;
19  }
20 #else
21  cam.initPersProjWithDistortion(582.7, 580.6, 326.6, 215.0, -0.3372, 0.4021);
22 #endif
23 
24  std::cout << cam << std::endl;
25 
27  vpImageTools::undistort(I, cam, Iud);
28  vpImageIo::write(Iud, "chessboard-undistort.pgm");
29  }
30  catch(vpException e) {
31  std::cout << "Catch an exception: " << e << std::endl;
32  }
33 
34  return 0;
35 }
static void write(const vpImage< unsigned char > &I, const char *filename)
Definition: vpImageIo.cpp:452
unsigned int getWidth() const
Definition: vpImage.h:159
error that can be emited by ViSP classes.
Definition: vpException.h:76
XML parser to load and save intrinsic camera parameters.
Generic class defining intrinsic camera parameters.
static void undistort(const vpImage< Type > &I, const vpCameraParameters &cam, vpImage< Type > &newI)
Definition: vpImageTools.h:362
Perspective projection with distortion model.
int parse(vpCameraParameters &cam, const char *filename, const std::string &camera_name, const vpCameraParameters::vpCameraParametersProjType &projModel, const unsigned int image_width=0, const unsigned int image_height=0)
unsigned int getHeight() const
Definition: vpImage.h:150
static void read(vpImage< unsigned char > &I, const char *filename)
Definition: vpImageIo.cpp:278
void initPersProjWithDistortion(const double px, const double py, const double u0, const double v0, const double kud, const double kdu)