ViSP  2.6.2
vpImageSimulator Class Reference

#include <vpImageSimulator.h>

Public Types

enum  vpColorPlan { COLORED, GRAY_SCALED }
 
enum  vpInterpolationType { SIMPLE, BILINEAR_INTERPOLATION }
 

Public Member Functions

 vpImageSimulator (const vpColorPlan &col=COLORED)
 
 vpImageSimulator (const vpImageSimulator &text)
 
virtual ~vpImageSimulator ()
 
vpImageSimulatoroperator= (const vpImageSimulator &sim)
 
void init (const vpImage< unsigned char > &I, vpColVector *_X)
 
void init (const vpImage< vpRGBa > &I, vpColVector *_X)
 
void init (const char *file_image, vpColVector *_X)
 
void init (const vpImage< unsigned char > &I, const std::vector< vpPoint > &_X)
 
void init (const vpImage< vpRGBa > &I, const std::vector< vpPoint > &_X)
 
void init (const char *file_image, const std::vector< vpPoint > &_X)
 
void setCameraPosition (const vpHomogeneousMatrix &_cMt)
 
void setInterpolationType (const vpInterpolationType interp)
 
void getImage (vpImage< unsigned char > &I, const vpCameraParameters &cam)
 
void getImage (vpImage< vpRGBa > &I, const vpCameraParameters &cam)
 
void getImage (vpImage< unsigned char > &I, vpImage< unsigned char > &Isrc, const vpCameraParameters &cam)
 
void getImage (vpImage< vpRGBa > &I, vpImage< vpRGBa > &Isrc, const vpCameraParameters &cam)
 
void getImage (vpImage< unsigned char > &I, const vpCameraParameters &cam, vpMatrix &zBuffer)
 
void getImage (vpImage< vpRGBa > &I, const vpCameraParameters &cam, vpMatrix &zBuffer)
 
void setCleanPreviousImage (const bool &clean, const vpColor &color=vpColor::white)
 

Static Public Member Functions

static void getImage (vpImage< unsigned char > &I, std::list< vpImageSimulator > &list, const vpCameraParameters &cam)
 
static void getImage (vpImage< vpRGBa > &I, std::list< vpImageSimulator > &list, const vpCameraParameters &cam)
 

Deprecated functions

static vp_deprecated void getImage (vpImage< unsigned char > &I, vpList< vpImageSimulator > &list, const vpCameraParameters &cam)
 
static vp_deprecated void getImage (vpImage< vpRGBa > &I, vpList< vpImageSimulator > &list, const vpCameraParameters &cam)
 

Detailed Description

Class which enables to project an image in the 3D space and get the view of a virtual camera.

The image is represented by a rectangular image whose corners coordinates are known in the 3D frame linked to the 3D rectangle.

The 3D rectangle is positionned relative to a virtual camera (represented by its intrinsic parameters). Indeed, the pose $ cMt $ has to be given by the user of the class.

And finally, the view of the virtual camera is given by the geImage() method.

You can use a colored or a gray scaled image.

To avoid the aliasing especially when the camera is very near from the image plane, a bilinear interpolation can be done for every pixels which have to be filled in. By default this functionality is not used because it consumes lot of time.

The following example explain how to use the class.

#include <visp/vpImage.h>
#include <visp/vpImageSimulator.h>
int main()
{
vpImage<vpRGBa> Icamera(480,640,0);
vpImage<vpRGBa> Iimage(60,60);
// Initialise the image which will be projected into the image Icamera
vpRGBa colorb(0,0,255);
vpRGBa colorw(255,255,255);
vpRGBa colorr(255,0,0);
for(int i = 0; i < 60; i++)
{
for(int j = 0; j < 20; j++)
Iimage[i][j] = colorb;
for(int j = 20; j < 40; j++)
Iimage[i][j] = colorw;
for(int j = 40; j < 60; j++)
Iimage[i][j] = colorr;
}
// Initialise the 3D coordinates of the Iimage corners
for (int i = 0; i < 4; i++) X[i].resize(3);
// Top left corner
X[0][0] = -1;
X[0][1] = -1;
X[0][2] = 0;
// Top right corner
X[1][0] = 1;
X[1][1] = -1;
X[1][2] = 0;
// Bottom right corner
X[2][0] = 1;
X[2][1] = 1;
X[2][2] = 0;
//Bottom left corner
X[3][0] = -1;
X[3][1] = 1;
X[3][2] = 0;
sim.init(Iimage, X);
vpCameraParameters cam(868.0, 869.0, 320, 240);
sim.getImage(Icamera,cam);
return 0;
}
Examples:
photometricVisualServoing.cpp, servoMomentImage.cpp, servoMomentPoints.cpp, servoMomentPolygon.cpp, and servoSimu4Points.cpp.

Definition at line 140 of file vpImageSimulator.h.

Member Enumeration Documentation

Enumerator
COLORED 
GRAY_SCALED 

Definition at line 143 of file vpImageSimulator.h.

Enumerator
SIMPLE 
BILINEAR_INTERPOLATION 

Definition at line 148 of file vpImageSimulator.h.

Constructor & Destructor Documentation

vpImageSimulator::vpImageSimulator ( const vpColorPlan col = COLORED)

Basic constructor.

You can choose if you want to use a colored or gray scaled image.

Parameters
col: Enable to choose the color space to use for the image which is projected.

By default the class uses colored images.

Definition at line 61 of file vpImageSimulator.cpp.

References vpColVector::resize(), SIMPLE, and vpColor::white.

vpImageSimulator::vpImageSimulator ( const vpImageSimulator text)

Copy constructor

Definition at line 98 of file vpImageSimulator.cpp.

References vpColVector::resize(), and setCameraPosition().

vpImageSimulator::~vpImageSimulator ( )
virtual

Basic destructor.

Definition at line 142 of file vpImageSimulator.cpp.

Member Function Documentation

void vpImageSimulator::getImage ( vpImage< unsigned char > &  I,
const vpCameraParameters cam 
)

Get the view of the virtual camera. Be carefull, the image I is modified. The projected image is not added as an overlay!

Parameters
I: The image used to store the result.
cam: The parameters of the virtual camera.
Examples:
photometricVisualServoing.cpp, and servoMomentImage.cpp.

Definition at line 188 of file vpImageSimulator.cpp.

References vpRGBa::B, vpImage< Type >::bitmap, COLORED, vpPixelMeterConversion::convertPoint(), vpRGBa::G, vpRect::getBottom(), vpImage< Type >::getHeight(), vpRect::getLeft(), vpRect::getRight(), vpRect::getTop(), vpImage< Type >::getWidth(), GRAY_SCALED, vpRGBa::R, and vpImagePoint::set_ij().

Referenced by vpWireFrameSimulator::getExternalImage(), and vpWireFrameSimulator::getInternalImage().

void vpImageSimulator::getImage ( vpImage< vpRGBa > &  I,
const vpCameraParameters cam 
)

Get the view of the virtual camera. Be carefull, the image I is modified. The projected image is not added as an overlay!

Parameters
I: The image used to store the result.
cam: The parameters of the virtual camera.

Definition at line 393 of file vpImageSimulator.cpp.

References vpRGBa::B, vpImage< Type >::bitmap, COLORED, vpPixelMeterConversion::convertPoint(), vpRGBa::G, vpRect::getBottom(), vpImage< Type >::getHeight(), vpRect::getLeft(), vpRect::getRight(), vpRect::getTop(), vpImage< Type >::getWidth(), GRAY_SCALED, vpRGBa::R, and vpImagePoint::set_ij().

void vpImageSimulator::getImage ( vpImage< unsigned char > &  I,
vpImage< unsigned char > &  Isrc,
const vpCameraParameters cam 
)

Get the view of the virtual camera. Be carefull, the image I is modified. The projected image is not added as an overlay! In this method you specify directly the image which is projected.

Parameters
I: The image used to store the result.
Isrc: The image which is projected into $ I $.
cam: The parameters of the virtual camera.

Definition at line 257 of file vpImageSimulator.cpp.

References vpRGBa::B, vpImage< Type >::bitmap, vpPixelMeterConversion::convertPoint(), vpRGBa::G, vpRect::getBottom(), vpImage< Type >::getHeight(), vpRect::getLeft(), vpRect::getRight(), vpRect::getTop(), vpImage< Type >::getWidth(), vpRGBa::R, and vpImagePoint::set_ij().

void vpImageSimulator::getImage ( vpImage< vpRGBa > &  I,
vpImage< vpRGBa > &  Isrc,
const vpCameraParameters cam 
)

Get the view of the virtual camera. Be carefull, the image I is modified. The projected image is not added as an overlay! In this method you specify directly the image which is projected.

Parameters
I: The image used to store the result.
Isrc: The image which is projected into $ I $.
cam: The parameters of the virtual camera.

Definition at line 464 of file vpImageSimulator.cpp.

References vpImage< Type >::bitmap, vpPixelMeterConversion::convertPoint(), vpRect::getBottom(), vpImage< Type >::getHeight(), vpRect::getLeft(), vpRect::getRight(), vpRect::getTop(), vpImage< Type >::getWidth(), and vpImagePoint::set_ij().

void vpImageSimulator::getImage ( vpImage< unsigned char > &  I,
const vpCameraParameters cam,
vpMatrix zBuffer 
)

Get the view of the virtual camera. Be carefull, the image I is modified. The projected image is not added as an overlay!

To take into account the projection of several images, a matrix $ zBuffer $ is given as argument. This matrix contains the z coordinates of all the pixel of the image $ I $ in the camera frame. During the projection, the pixels are updated if there is no other plan between the camera and the projected image. The matrix $ zBuffer $ is updated in this case.

Parameters
I: The image used to store the result.
cam: The parameters of the virtual camera.
zBuffer: A matrix containing the z coordinates of the pixels of the image $ I $

Definition at line 315 of file vpImageSimulator.cpp.

References vpRGBa::B, vpImage< Type >::bitmap, COLORED, vpPixelMeterConversion::convertPoint(), vpRGBa::G, vpRect::getBottom(), vpMatrix::getCols(), vpImage< Type >::getHeight(), vpRect::getLeft(), vpRect::getRight(), vpMatrix::getRows(), vpRect::getTop(), vpImage< Type >::getWidth(), GRAY_SCALED, vpMatrixException::incorrectMatrixSizeError, vpRGBa::R, and vpImagePoint::set_ij().

void vpImageSimulator::getImage ( vpImage< vpRGBa > &  I,
const vpCameraParameters cam,
vpMatrix zBuffer 
)

Get the view of the virtual camera. Be carefull, the image I is modified. The projected image is not added as an overlay!

To take into account the projection of several images, a matrix $ zBuffer $ is given as argument. This matrix contains the z coordinates of all the pixel of the image $ I $ in the camera frame. During the projection, the pixels are updated if there is no other plan between the camera and the projected image. The matrix $ zBuffer $ is updated in this case.

Parameters
I: The image used to store the result.
cam: The parameters of the virtual camera.
zBuffer: A matrix containing the z coordinates of the pixels of the image $ I $

Definition at line 521 of file vpImageSimulator.cpp.

References vpRGBa::B, vpImage< Type >::bitmap, COLORED, vpPixelMeterConversion::convertPoint(), vpRGBa::G, vpRect::getBottom(), vpMatrix::getCols(), vpImage< Type >::getHeight(), vpRect::getLeft(), vpRect::getRight(), vpMatrix::getRows(), vpRect::getTop(), vpImage< Type >::getWidth(), GRAY_SCALED, vpMatrixException::incorrectMatrixSizeError, vpRGBa::R, and vpImagePoint::set_ij().

void vpImageSimulator::getImage ( vpImage< unsigned char > &  I,
std::list< vpImageSimulator > &  list,
const vpCameraParameters cam 
)
static

Get the view of the virtual camera. Be carefull, the image I is modified. The projected image is not added as an overlay!

With this method, a list of image is projected into the image. Thus, you have to initialise a list of vpImageSimulator. Then you store them into a vpList. And finally with this method you project them into the image $ I $. The depth of the 3D scene is managed such as an image in foreground hides an image background.

The following example shows how to use the method:

#include <list>
#include <visp/vpImage.h>
#include <visp/vpImageSimulator.h>
int main()
{
vpImage<vpRGBa> Icamera(480,640,0);
vpImage<vpRGBa> Iimage(60,60);
// Initialise the image which will be projected into the image Icamera
vpRGBa colorb(0,0,255);
vpRGBa colorw(255,255,255);
vpRGBa colorr(255,0,0);
for(int i = 0; i < 60; i++)
{
for(int j = 0; j < 20; j++)
Iimage[i][j] = colorb;
for(int j = 20; j < 40; j++)
Iimage[i][j] = colorw;
for(int j = 40; j < 60; j++)
Iimage[i][j] = colorr;
}
// Initialise the 3D coordinates of the Iimage corners
for (int i = 0; i < 4; i++) X[i].resize(3);
// Top left corner
X[0][0] = -1;
X[0][1] = -1;
X[0][2] = 1;
// Top right corner
X[1][0] = 1;
X[1][1] = -1;
X[1][2] = 1;
// Bottom right corner
X[2][0] = 1;
X[2][1] = 1;
X[2][2] = 1;
//Bottom left corner
X[3][0] = -1;
X[3][1] = 1;
X[3][2] = 1;
sim.init(Iimage, X);
// Top left corner
X[0][0] = -1;
X[0][1] = -1;
X[0][2] = 1;
// Top right corner
X[1][0] = 1;
X[1][1] = -1;
X[1][2] = 1;
// Bottom right corner
X[2][0] = 1;
X[2][1] = 1;
X[2][2] = 1;
//Bottom left corner
X[3][0] = -1;
X[3][1] = 1;
X[3][2] = 1;
sim2.init(Iimage, X);
std::list<vpImageSimulator> listSim;
listSim.addRight(sim);
listSim.addRight(sim2);
vpCameraParameters cam(868.0, 869.0, 320, 240);
vpImageSimulator::getImage(Icamera,listSim,cam);
return 0;
}
Parameters
I: The image used to store the result
list: List of vpImageSimulator to project
cam: The parameters of the virtual camera

Definition at line 1114 of file vpImageSimulator.cpp.

References vpRGBa::B, vpImage< Type >::bitmap, COLORED, vpPixelMeterConversion::convertPoint(), vpRGBa::G, vpRect::getBottom(), vpImage< Type >::getHeight(), vpRect::getLeft(), vpRect::getRight(), vpRect::getTop(), vpImage< Type >::getWidth(), GRAY_SCALED, vpRGBa::R, and vpImagePoint::set_ij().

void vpImageSimulator::getImage ( vpImage< vpRGBa > &  I,
std::list< vpImageSimulator > &  list,
const vpCameraParameters cam 
)
static

Get the view of the virtual camera. Be carefull, the image I is modified. The projected image is not added as an overlay!

With this method, a list of image is projected into the image. Thus, you have to initialise a list of vpImageSimulator. Then you store them into a vpList. And finally with this method you project them into the image $ I $. The depth of the 3D scene is managed such as an image in foreground hides an image background.

The following example shows how to use the method:

#include <list>
#include <visp/vpImage.h>
#include <visp/vpImageSimulator.h>
int main()
{
vpImage<vpRGBa> Icamera(480,640,0);
vpImage<vpRGBa> Iimage(60,60);
// Initialise the image which will be projected into the image Icamera
vpRGBa colorb(0,0,255);
vpRGBa colorw(255,255,255);
vpRGBa colorr(255,0,0);
for(int i = 0; i < 60; i++)
{
for(int j = 0; j < 20; j++)
Iimage[i][j] = colorb;
for(int j = 20; j < 40; j++)
Iimage[i][j] = colorw;
for(int j = 40; j < 60; j++)
Iimage[i][j] = colorr;
}
// Initialise the 3D coordinates of the Iimage corners
for (int i = 0; i < 4; i++) X[i].resize(3);
// Top left corner
X[0][0] = -1;
X[0][1] = -1;
X[0][2] = 1;
// Top right corner
X[1][0] = 1;
X[1][1] = -1;
X[1][2] = 1;
// Bottom right corner
X[2][0] = 1;
X[2][1] = 1;
X[2][2] = 1;
//Bottom left corner
X[3][0] = -1;
X[3][1] = 1;
X[3][2] = 1;
sim.init(Iimage, X);
// Top left corner
X[0][0] = -1;
X[0][1] = -1;
X[0][2] = 1;
// Top right corner
X[1][0] = 1;
X[1][1] = -1;
X[1][2] = 1;
// Bottom right corner
X[2][0] = 1;
X[2][1] = 1;
X[2][2] = 1;
//Bottom left corner
X[3][0] = -1;
X[3][1] = 1;
X[3][2] = 1;
sim2.init(Iimage, X);
std::list<vpImageSimulator> listSim;
listSim.addRight(sim);
listSim.addRight(sim2);
vpCameraParameters cam(868.0, 869.0, 320, 240);
vpImageSimulator::getImage(Icamera,listSim,cam);
return 0;
}
Parameters
I: The image used to store the result
list: List of vpImageSimulator to project
cam: The parameters of the virtual camera

Definition at line 1314 of file vpImageSimulator.cpp.

References vpRGBa::B, vpImage< Type >::bitmap, COLORED, vpPixelMeterConversion::convertPoint(), vpRGBa::G, vpRect::getBottom(), vpImage< Type >::getHeight(), vpRect::getLeft(), vpRect::getRight(), vpRect::getTop(), vpImage< Type >::getWidth(), GRAY_SCALED, vpRGBa::R, and vpImagePoint::set_ij().

void vpImageSimulator::getImage ( vpImage< unsigned char > &  I,
vpList< vpImageSimulator > &  list,
const vpCameraParameters cam 
)
static
Deprecated:
This method is deprecated, you should use: vpImageSimulator::getImage(vpImage<unsigned char> &, std::list<vpImageSimulator> &, const vpCameraParameters &) instead.

Get the view of the virtual camera. Be carefull, the image I is modified. The projected image is not added as an overlay!

With this method, a list of image is projected into the image. Thus, you have to initialise a list of vpImageSimulator. Then you store them into a vpList. And finally with this method you project them into the image $ I $. The depth of the 3D scene is managed such as an image in foreground hides an image background.

The following example shows how to use the method:

#include <visp/vpImage.h>
#include <visp/vpImageSimulator.h>
int main()
{
vpImage<vpRGBa> Icamera(480,640,0);
vpImage<vpRGBa> Iimage(60,60);
// Initialise the image which will be projected into the image Icamera
vpRGBa colorb(0,0,255);
vpRGBa colorw(255,255,255);
vpRGBa colorr(255,0,0);
for(int i = 0; i < 60; i++)
{
for(int j = 0; j < 20; j++)
Iimage[i][j] = colorb;
for(int j = 20; j < 40; j++)
Iimage[i][j] = colorw;
for(int j = 40; j < 60; j++)
Iimage[i][j] = colorr;
}
// Initialise the 3D coordinates of the Iimage corners
for (int i = 0; i < 4; i++) X[i].resize(3);
// Top left corner
X[0][0] = -1;
X[0][1] = -1;
X[0][2] = 1;
// Top right corner
X[1][0] = 1;
X[1][1] = -1;
X[1][2] = 1;
// Bottom right corner
X[2][0] = 1;
X[2][1] = 1;
X[2][2] = 1;
//Bottom left corner
X[3][0] = -1;
X[3][1] = 1;
X[3][2] = 1;
sim.init(Iimage, X);
// Top left corner
X[0][0] = -1;
X[0][1] = -1;
X[0][2] = 1;
// Top right corner
X[1][0] = 1;
X[1][1] = -1;
X[1][2] = 1;
// Bottom right corner
X[2][0] = 1;
X[2][1] = 1;
X[2][2] = 1;
//Bottom left corner
X[3][0] = -1;
X[3][1] = 1;
X[3][2] = 1;
sim2.init(Iimage, X);
listSim.addRight(sim);
listSim.addRight(sim2);
vpCameraParameters cam(868.0, 869.0, 320, 240);
vpImageSimulator::getImage(Icamera,listSim,cam);
return 0;
}
Parameters
I: The image used to store the result
list: List of vpImageSimulator to project
cam: The parameters of the virtual camera

Definition at line 702 of file vpImageSimulator.cpp.

References vpRGBa::B, vpImage< Type >::bitmap, COLORED, vpPixelMeterConversion::convertPoint(), vpList< type >::front(), vpRGBa::G, vpRect::getBottom(), vpImage< Type >::getHeight(), vpRect::getLeft(), vpRect::getRight(), vpRect::getTop(), vpImage< Type >::getWidth(), GRAY_SCALED, vpList< type >::nbElements(), vpList< type >::next(), vpRGBa::R, vpImagePoint::set_ij(), and vpList< type >::value().

void vpImageSimulator::getImage ( vpImage< vpRGBa > &  I,
vpList< vpImageSimulator > &  list,
const vpCameraParameters cam 
)
static
Deprecated:
This method is deprecated, you should use: vpImageSimulator::getImage(vpImage<vpRGBa> &, std::list<vpImageSimulator> &, const vpCameraParameters &) instead.

Get the view of the virtual camera. Be carefull, the image I is modified. The projected image is not added as an overlay!

With this method, a list of image is projected into the image. Thus, you have to initialise a list of vpImageSimulator. Then you store them into a vpList. And finally with this method you project them into the image $ I $. The depth of the 3D scene is managed such as an image in foreground hides an image background.

The following example shows how to use the method:

#include <visp/vpImage.h>
#include <visp/vpImageSimulator.h>
int main()
{
vpImage<vpRGBa> Icamera(480,640,0);
vpImage<vpRGBa> Iimage(60,60);
// Initialise the image which will be projected into the image Icamera
vpRGBa colorb(0,0,255);
vpRGBa colorw(255,255,255);
vpRGBa colorr(255,0,0);
for(int i = 0; i < 60; i++)
{
for(int j = 0; j < 20; j++)
Iimage[i][j] = colorb;
for(int j = 20; j < 40; j++)
Iimage[i][j] = colorw;
for(int j = 40; j < 60; j++)
Iimage[i][j] = colorr;
}
// Initialise the 3D coordinates of the Iimage corners
for (int i = 0; i < 4; i++) X[i].resize(3);
// Top left corner
X[0][0] = -1;
X[0][1] = -1;
X[0][2] = 1;
// Top right corner
X[1][0] = 1;
X[1][1] = -1;
X[1][2] = 1;
// Bottom right corner
X[2][0] = 1;
X[2][1] = 1;
X[2][2] = 1;
//Bottom left corner
X[3][0] = -1;
X[3][1] = 1;
X[3][2] = 1;
sim.init(Iimage, X);
// Top left corner
X[0][0] = -1;
X[0][1] = -1;
X[0][2] = 1;
// Top right corner
X[1][0] = 1;
X[1][1] = -1;
X[1][2] = 1;
// Bottom right corner
X[2][0] = 1;
X[2][1] = 1;
X[2][2] = 1;
//Bottom left corner
X[3][0] = -1;
X[3][1] = 1;
X[3][2] = 1;
sim2.init(Iimage, X);
listSim.addRight(sim);
listSim.addRight(sim2);
vpCameraParameters cam(868.0, 869.0, 320, 240);
vpImageSimulator::getImage(Icamera,listSim,cam);
return 0;
}
Parameters
I: The image used to store the result
list: List of vpImageSimulator to project
cam: The parameters of the virtual camera

Definition at line 909 of file vpImageSimulator.cpp.

References vpRGBa::B, vpImage< Type >::bitmap, COLORED, vpPixelMeterConversion::convertPoint(), vpList< type >::front(), vpRGBa::G, vpRect::getBottom(), vpImage< Type >::getHeight(), vpRect::getLeft(), vpRect::getRight(), vpRect::getTop(), vpImage< Type >::getWidth(), GRAY_SCALED, vpList< type >::nbElements(), vpList< type >::next(), vpRGBa::R, vpImagePoint::set_ij(), and vpList< type >::value().

void vpImageSimulator::init ( const vpImage< unsigned char > &  I,
vpColVector _X 
)

Initialise the image thanks to an image $ I $ and a table of vector containing the 3D coordinates of the image's corners.

The table must have a size of 4!

  • $ X[0] $ :Top left corner.
  • $ X[1] $ :Top right corner.
  • $ X[2] $ :Bottom right corner.
  • $ X[3] $ :Bottom left corner.
Parameters
I: The image which is projected.
_X: table of the 3D coordinates corresponding to the image corners.
Examples:
photometricVisualServoing.cpp, servoMomentImage.cpp, and servoSimu4Points.cpp.

Definition at line 1524 of file vpImageSimulator.cpp.

References vpImageConvert::convert().

void vpImageSimulator::init ( const vpImage< vpRGBa > &  I,
vpColVector _X 
)

Initialise the image thanks to an image $ I $ and a table of vector containing the 3D coordinates of the image's corners.

The table must have a size of 4!

  • $ X[0] $ :Top left corner.
  • $ X[1] $ :Top right corner.
  • $ X[2] $ :Bottom right corner.
  • $ X[3] $ :Bottom left corner.
Parameters
I: The image which is projected.
_X: table of the 3D coordinates corresponding to the image corners.

Definition at line 1545 of file vpImageSimulator.cpp.

References vpImageConvert::convert().

void vpImageSimulator::init ( const char *  file_image,
vpColVector _X 
)

Initialise the image thanks to an image whose adress is given by $ file_image $ and a table of vector containing the 3D coordinates of the image's corners.

The table must have a size of 4!

  • $ X[0] $ :Top left corner.
  • $ X[1] $ :Top right corner.
  • $ X[2] $ :Bottom right corner.
  • $ X[3] $ :Bottom left corner.
Parameters
file_image: The adress of an image file.
_X: table of the 3D coordinates corresponding to the image corners.

Definition at line 1566 of file vpImageSimulator.cpp.

References vpImageIo::read().

void vpImageSimulator::init ( const vpImage< unsigned char > &  I,
const std::vector< vpPoint > &  _X 
)

Initialise the image thanks to an image $ I $ and a table of vector containing the 3D coordinates of the image's corners.

Exceptions
vpException::dimensionErrorif the _X vector is not of size 4.
  • $ X[0] $ :Top left corner.
  • $ X[1] $ :Top right corner.
  • $ X[2] $ :Bottom right corner.
  • $ X[3] $ :Bottom left corner.
Parameters
I: The image which is projected.
_X: Vector of the 3D coordinates in the object frame (oX, oY, oZ) corresponding to the image corners.

Definition at line 1588 of file vpImageSimulator.cpp.

References vpImageConvert::convert(), vpException::dimensionError, and vpColVector::resize().

void vpImageSimulator::init ( const vpImage< vpRGBa > &  I,
const std::vector< vpPoint > &  _X 
)

Initialise the image thanks to an image $ I $ and a table of vector containing the 3D coordinates of the image's corners.

Exceptions
vpException::dimensionErrorif the _X vector is not of size 4.
  • $ X[0] $ :Top left corner.
  • $ X[1] $ :Top right corner.
  • $ X[2] $ :Bottom right corner.
  • $ X[3] $ :Bottom left corner.
Parameters
I: The image which is projected.
_X: Vector of the 3D coordinates in the object frame (oX, oY, oZ) corresponding to the image corners.

Definition at line 1620 of file vpImageSimulator.cpp.

References vpImageConvert::convert(), vpException::dimensionError, and vpColVector::resize().

void vpImageSimulator::init ( const char *  file_image,
const std::vector< vpPoint > &  _X 
)

Initialise the image thanks to an image whose adress is given by $ file_image $ and a table of vector containing the 3D coordinates of the image's corners.

Exceptions
vpException::dimensionErrorif the _X vector is not of size 4.
  • $ X[0] $ :Top left corner.
  • $ X[1] $ :Top right corner.
  • $ X[2] $ :Bottom right corner.
  • $ X[3] $ :Bottom left corner.
Parameters
file_image: The adress of an image file.
_X: Vector of the 3D coordinates in the object frame (oX, oY, oZ) corresponding to the image corners.

Definition at line 1652 of file vpImageSimulator.cpp.

References vpException::dimensionError, vpImageIo::read(), and vpColVector::resize().

vpImageSimulator & vpImageSimulator::operator= ( const vpImageSimulator sim)

Definition at line 153 of file vpImageSimulator.cpp.

References setCameraPosition().

void vpImageSimulator::setCameraPosition ( const vpHomogeneousMatrix _cMt)
void vpImageSimulator::setCleanPreviousImage ( const bool &  clean,
const vpColor color = vpColor::white 
)
inline

As it can be time consuming to reset all the image to a default baground value, this function enable to reset only the pixel which changed the previous time.

By default this functionality is disabled. and the background color is white.

Parameters
clean: Enable the reset method.
color: Color of the back ground.

Definition at line 252 of file vpImageSimulator.h.

void vpImageSimulator::setInterpolationType ( const vpInterpolationType  interp)
inline
Examples:
photometricVisualServoing.cpp, and servoMomentImage.cpp.

Definition at line 222 of file vpImageSimulator.h.