class mrpt::img::CMappedImage

This class encapsulates a MRPT Image and allows the sampling of individual pixels with sub-pixel accuracy and with a change of coordinates (eg, meters).

Only work with graylevels (for convenience), so if a color image is passed it’ll be passed first to grayscale.

See also:

CImage

#include <mrpt/img/CMappedImage.h>

class CMappedImage
{
public:
    // construction

    CMappedImage(CImage::Ptr img, double x0 = 0, double x1 = -1, double y0 = 0, double y1 = -1, TInterpolationMethod method = IMG_INTERP_LINEAR);

    //
methods

    void changeCoordinates(double x0, double x1, double y0, double y1);
    double getPixel(double x, double y) const;
};

Construction

CMappedImage(
    CImage::Ptr img,
    double x0 = 0,
    double x1 = -1,
    double y0 = 0,
    double y1 = -1,
    TInterpolationMethod method = IMG_INTERP_LINEAR
    )

Constructor: Must pass an image (as a smart pointer) and the coordinates of the border.

Parameters:

img

The image. A copy of the smart pointer is kept internally to this object.

x0

Coordinate X of the left side (default: 0)

x1

Coordinate X of the right side (or -1 to IMAGE_WIDTH-1)

y0

Coordinate Y of the top side (default: 0)

y1

Coordinate Y of the bottom side (or -1 to IMAGE_HEIGHT-1)

method

The interpolation method: It can be imNEAREST, imBILINEAR or imBICUBIC.

Methods

void changeCoordinates(double x0, double x1, double y0, double y1)

Changes the coordinates of the image (see constructor for the meaning)

double getPixel(double x, double y) const

Returns the interpolated pixel at the coordinates (x,y), in the range [0,255] (grayscale) If the point is out of the image, 0 is returned.