A class for storing images as grayscale or RGB bitmaps.
File I/O is supported as:
How to create color/grayscale images:
Additional notes:
Some functions are implemented in MRPT with highly optimized SSE2/SSE3 routines, in suitable platforms and compilers. To see the list of optimizations refer to this page. If optimized versions are not available in some platform it falls back to default OpenCV methods.
For many computer vision functions that use CImage as its image data type, see mrpt::vision.
Definition at line 130 of file img/CImage.h.
#include <mrpt/img/CImage.h>
Public Types | |
enum | TPenStyle { psSolid = 0, psDash, psDot, psDashDot, psDashDotDot } |
Definition of pen styles. More... | |
Public Member Functions | |
void * | operator new (size_t size) |
void * | operator new[] (size_t size) |
void | operator delete (void *ptr) noexcept |
void | operator delete[] (void *ptr) noexcept |
void | operator delete (void *memory, void *ptr) noexcept |
void * | operator new (size_t size, const std::nothrow_t &) noexcept |
void | operator delete (void *ptr, const std::nothrow_t &) noexcept |
virtual mxArray * | writeToMatlab () const |
Introduces a pure virtual method responsible for writing to a mxArray Matlab object, typically a MATLAB struct whose contents are documented in each derived class. More... | |
void | rectangle (int x0, int y0, int x1, int y1, const mrpt::img::TColor color, unsigned int width=1) |
Draws a rectangle (an empty rectangle, without filling) More... | |
void | triangle (int x0, int y0, int size, const mrpt::img::TColor color, bool inferior=true, unsigned int width=1) |
Draws a triangle. More... | |
virtual void | filledRectangle (int x0, int y0, int x1, int y1, const mrpt::img::TColor color) |
Draws a filled rectangle. More... | |
virtual void | textOut (int x0, int y0, const std::string &str, const mrpt::img::TColor color) |
Renders 2D text using bitmap fonts. More... | |
virtual void | selectTextFont (const std::string &fontName) |
Select the current font used when drawing text. More... | |
virtual void | drawImage (int x, int y, const mrpt::img::CImage &img) |
Draws an image as a bitmap at a given position. More... | |
virtual void | drawImage (int x, int y, const mrpt::img::CImage &img, float rotation, float scale) |
Draws an image as a bitmap at a given position, with some custom scale and rotation changes. More... | |
void | cross (int x0, int y0, const mrpt::img::TColor color, char type, unsigned int size=5, unsigned int width=1) |
Draw a cross. More... | |
template<class MATRIX2X2 > | |
void | ellipseGaussian (const MATRIX2X2 *cov2D, const double mean_x, const double mean_y, double confIntervalStds=2, const mrpt::img::TColor &color=mrpt::img::TColor(255, 255, 255), unsigned int width=1, int nEllipsePoints=20) |
Draws an ellipse representing a given confidence interval of a 2D Gaussian distribution. More... | |
template<class FEATURELIST > | |
void | drawFeaturesSimple (const FEATURELIST &list, const TColor &color=TColor::red(), const int cross_size=5) |
Draws a set of marks onto the image, given a generic container of entities having just "x" and "y" fields. More... | |
template<class FEATURELIST > | |
void | drawFeatures (const FEATURELIST &list, const TColor &color=TColor::red(), const bool showIDs=false, const bool showResponse=false) |
Draws a set of marks (or scaled circles for features with scale) onto the image, given a generic container of features. More... | |
Constructors & destructor | |
CImage () | |
Default constructor: initialize an 1x1 RGB image. More... | |
CImage (unsigned int width, unsigned int height, TImageChannels nChannels=CH_RGB, bool originTopLeft=true) | |
Constructor for a given image size and type. More... | |
CImage (const CImage &o) | |
Copy constructor, makes a full copy of the original image contents (unless it was externally stored, in that case, this new image will just point to the same image file). More... | |
CImage (TConstructorFlags_CImage) | |
Fast constructor that leaves the image uninitialized (the internal IplImage pointer set to nullptr). More... | |
CImage (const CImage &other_img, TConstructorFlags_CImage constructor_flag) | |
Fast constructor of a grayscale version of another image, making a reference to the original image if it already was in grayscale, or otherwise creating a new grayscale image and converting the original image into it. More... | |
CImage (void *iplImage) | |
Constructor from an IPLImage*, making a copy of the image. More... | |
template<typename Derived > | |
CImage (const Eigen::MatrixBase< Derived > &m, bool matrix_is_normalized) | |
Explicit constructor from a matrix, interpreted as grayscale intensity values, in the range [0,1] (normalized=true) or [0,255] (normalized=false) More... | |
virtual | ~CImage () |
Destructor: More... | |
Manipulate the image contents or size, various computer-vision | |
methods (image filters, undistortion, etc.) | |
void | resize (unsigned int width, unsigned int height, TImageChannels nChannels, bool originTopLeft) |
Changes the size of the image, erasing previous contents (does NOT scale its current content, for that, see scaleImage). More... | |
void | scaleImage (unsigned int width, unsigned int height, TInterpolationMethod interp=IMG_INTERP_CUBIC) |
Scales this image to a new size, interpolating as needed. More... | |
void | scaleImage (CImage &out_img, unsigned int width, unsigned int height, TInterpolationMethod interp=IMG_INTERP_CUBIC) const |
Scales this image to a new size, interpolating as needed, saving the new image in a different output object. More... | |
void | rotateImage (double angle_radians, unsigned int center_x, unsigned int center_y, double scale=1.0) |
Rotates the image by the given angle around the given center point, with an optional scale factor. More... | |
void | setPixel (int x, int y, size_t color) override |
Changes the value of the pixel (x,y). More... | |
void | setOriginTopLeft (bool val) |
Changes the property of the image stating if the top-left corner (vs. More... | |
void | line (int x0, int y0, int x1, int y1, const mrpt::img::TColor color, unsigned int width=1, TPenStyle penStyle=psSolid) override |
Draws a line. More... | |
void | drawCircle (int x, int y, int radius, const mrpt::img::TColor &color=mrpt::img::TColor(255, 255, 255), unsigned int width=1) override |
Draws a circle of a given radius. More... | |
void | equalizeHistInPlace () |
Equalize the image histogram, replacing the original image. More... | |
void | equalizeHist (CImage &outImg) const |
Equalize the image histogram, saving the new image in the given output object. More... | |
CImage | scaleHalf () const |
Returns a new image scaled down to half its original size. More... | |
void | scaleHalf (CImage &out_image) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
CImage | scaleHalfSmooth () const |
Returns a new image scaled down to half its original size (averaging between every two rows) More... | |
void | scaleHalfSmooth (CImage &out_image) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
CImage | scaleDouble () const |
Returns a new image scaled up to double its original size. More... | |
void | scaleDouble (CImage &out_image) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
void | update_patch (const CImage &patch, const unsigned int col, const unsigned int row) |
Update a part of this image with the "patch" given as argument. More... | |
void | extract_patch (CImage &patch, const unsigned int col=0, const unsigned int row=0, const unsigned int width=1, const unsigned int height=1) const |
Extract a patch from this image, saveing it into "patch" (its previous contents will be overwritten). More... | |
float | correlate (const CImage &img2int, int width_init=0, int height_init=0) const |
Computes the correlation coefficient (returned as val), between two images This function use grayscale images only img1, img2 must be same size (by AJOGD @ DEC-2006) More... | |
void | cross_correlation (const CImage &patch_img, size_t &u_max, size_t &v_max, double &max_val, int u_search_ini=-1, int v_search_ini=-1, int u_search_size=-1, int v_search_size=-1, CImage *out_corr_image=nullptr) const |
Computes the correlation between this image and another one, encapsulating the openCV function cvMatchTemplate. More... | |
void | cross_correlation_FFT (const CImage &in_img, math::CMatrixFloat &out_corr, int u_search_ini=-1, int v_search_ini=-1, int u_search_size=-1, int v_search_size=-1, float biasThisImg=0, float biasInImg=0) const |
Computes the correlation matrix between this image and another one. More... | |
void | normalize () |
Optimize the brightness range of an image without using histogram Only for one channel images. More... | |
void | flipVertical (bool also_swapRB=false) |
Flips the image vertically. More... | |
void | flipHorizontal () |
Flips the image horizontally. More... | |
void | swapRB () |
Swaps red and blue channels. More... | |
void | rectifyImage (CImage &out_img, const mrpt::img::TCamera &cameraParams) const |
Rectify (un-distort) the image according to some camera parameters, and returns an output un-distorted image. More... | |
void | rectifyImageInPlace (const mrpt::img::TCamera &cameraParams) |
Rectify (un-distort) the image according to a certain camera matrix and vector of distortion coefficients, replacing "this" with the rectified image. More... | |
void | rectifyImageInPlace (void *mapX, void *mapY) |
Rectify an image (undistorts and rectification) from a stereo pair according to a pair of precomputed rectification maps. More... | |
void | filterMedian (CImage &out_img, int W=3) const |
Filter the image with a Median filter with a window size WxW, returning the filtered image in out_img More... | |
void | filterMedianInPlace (int W=3) |
Filter the image with a Median filter with a window size WxH, replacing "this" image by the filtered one. More... | |
void | filterGaussianInPlace (int W=3, int H=3) |
Filter the image with a Gaussian filter with a window size WxH, returning the filtered image in out_img More... | |
void | filterGaussian (CImage &out_img, int W=3, int H=3) const |
Filter the image with a Gaussian filter with a window size WxH, replacing "this" image by the filtered one. More... | |
bool | drawChessboardCorners (std::vector< TPixelCoordf > &cornerCoords, unsigned int check_size_x, unsigned int check_size_y, unsigned int lines_width=1, unsigned int circles_radius=4) |
Draw onto this image the detected corners of a chessboard. More... | |
void | joinImagesHorz (const CImage &im1, const CImage &im2) |
Joins two images side-by-side horizontally. More... | |
float | KLT_response (const unsigned int x, const unsigned int y, const unsigned int half_window_size) const |
Compute the KLT response at a given pixel (x,y) - Only for grayscale images (for efficiency it avoids converting to grayscale internally). More... | |
Copy, move & swap operations | |
CImage & | operator= (const CImage &o) |
Copy operator (if the image is externally stored, the writen image will be such as well). More... | |
void | copyFromForceLoad (const CImage &o) |
Copies from another image, and, if that one is externally stored, the image file will be actually loaded into memory in "this" object. More... | |
void | copyFastFrom (CImage &o) |
Moves an image from another object, erasing the origin image in the process (this is much faster than copying) More... | |
void | swap (CImage &o) |
Very efficient swap of two images (just swap the internal pointers) More... | |
Access to image contents (IplImage structure and raw pixels). | |
template<typename T > | |
const T * | getAs () const |
Returns a pointer to a const T* containing the image - the idea is to call like "img.getAs<IplImage>()" so we can avoid here including OpenCV's headers. More... | |
template<typename T > | |
T * | getAs () |
Returns a pointer to a T* containing the image - the idea is to call like "img.getAs<IplImage>()" so we can avoid here including OpenCV's headers. More... | |
unsigned char * | get_unsafe (unsigned int col, unsigned int row, unsigned int channel=0) const |
Access to pixels without checking boundaries - Use normally the () operator better, which checks the coordinates. More... | |
float | getAsFloat (unsigned int col, unsigned int row, unsigned int channel) const |
Returns the contents of a given pixel at the desired channel, in float format: [0,255]->[0,1] The coordinate origin is pixel(0,0)=top-left corner of the image. More... | |
float | getAsFloat (unsigned int col, unsigned int row) const |
Returns the contents of a given pixel (for gray-scale images, in color images the gray scale equivalent is computed for the pixel), in float format: [0,255]->[0,1] The coordinate origin is pixel(0,0)=top-left corner of the image. More... | |
unsigned char * | operator() (unsigned int col, unsigned int row, unsigned int channel=0) const |
Returns a pointer to a given pixel information. More... | |
Query image properties | |
size_t | getWidth () const override |
Returns the width of the image in pixels. More... | |
size_t | getHeight () const override |
Returns the height of the image in pixels. More... | |
void | getSize (TImageSize &s) const |
Return the size of the image. More... | |
TImageSize | getSize () const |
Return the size of the image. More... | |
size_t | getRowStride () const |
Returns the row stride of the image: this is the number of bytes between two consecutive rows. More... | |
float | getMaxAsFloat () const |
Return the maximum pixel value of the image, as a float value in the range [0,1]. More... | |
bool | isColor () const |
Returns true if the image is RGB, false if it is grayscale. More... | |
bool | isOriginTopLeft () const |
Returns true if the coordinates origin is top-left, or false if it is bottom-left More... | |
const char * | getChannelsOrder () const |
Returns a string of the form "BGR","RGB" or "GRAY" indicating the channels ordering. More... | |
void | setChannelsOrder_RGB () |
Marks the channel ordering in a color image as "RGB" (this doesn't actually modify the image data, just the format description) More... | |
void | setChannelsOrder_BGR () |
Marks the channel ordering in a color image as "BGR" (this doesn't actually modify the image data, just the format description) More... | |
TImageChannels | getChannelCount () const |
Returns the number of channels, typically 1 (GRAY) or 3 (RGB) More... | |
void | getAsMatrix (mrpt::math::CMatrixFloat &outMatrix, bool doResize=true, int x_min=0, int y_min=0, int x_max=-1, int y_max=-1) const |
Returns the image as a matrix with pixel grayscale values in the range [0,1]. More... | |
void | getAsRGBMatrices (mrpt::math::CMatrixFloat &outMatrixR, mrpt::math::CMatrixFloat &outMatrixG, mrpt::math::CMatrixFloat &outMatrixB, bool doResize=true, int x_min=0, int y_min=0, int x_max=-1, int y_max=-1) const |
Returns the image as RGB matrices with pixel values in the range [0,1]. More... | |
void | getAsMatrixTiled (math::CMatrix &outMatrix) const |
Returns the image as a matrix, where the image is "tiled" (repeated) the required number of times to fill the entire size of the matrix on input. More... | |
Color/Grayscale conversion | |
CImage | grayscale () const |
Returns a grayscale version of the image, or itself if it is already a grayscale image. More... | |
void | grayscale (CImage &ret) const |
Returns a grayscale version of the image, or itself if it is already a grayscale image. More... | |
void | colorImage (CImage &ret) const |
Returns a RGB version of the grayscale image, or itself if it is already a RGB image. More... | |
void | colorImageInPlace () |
Replaces this grayscale image with a RGB version of it. More... | |
void | grayscaleInPlace () |
Replaces the image with a grayscale version of it. More... | |
Static Public Member Functions | |
static void * | operator new (size_t size, void *ptr) |
Static Public Attributes | |
Serialization format global flags | |
static bool | DISABLE_ZIP_COMPRESSION = false |
By default, when storing images through the CSerializable interface, grayscale images will be ZIP compressed if they are larger than 16Kb: this flag can be turn on to disable ZIP compression and gain speed versus occupied space. More... | |
static bool | DISABLE_JPEG_COMPRESSION = false |
By default, when storing images through the CSerializable interface, RGB images are JPEG-compressed to save space. More... | |
static int | SERIALIZATION_JPEG_QUALITY = 95 |
Unless DISABLE_JPEG_COMPRESSION=true, this sets the JPEG quality (range 1-100) of serialized RGB images. More... | |
Protected Member Functions | |
void | changeSize (unsigned int width, unsigned int height, TImageChannels nChannels, bool originTopLeft) |
Resize the buffers in "img" to accomodate a new image size and/or format. More... | |
void | releaseIpl (bool thisIsExternalImgUnload=false) noexcept |
Release the internal IPL image, if not nullptr or read-only. More... | |
void | makeSureImageIsLoaded () const |
Checks if the image is of type "external storage", and if so and not loaded yet, load it. More... | |
CSerializable virtual methods | |
uint8_t | serializeGetVersion () const override |
Must return the current versioning number of the object. More... | |
void | serializeTo (mrpt::serialization::CArchive &out) const override |
Pure virtual method for writing (serializing) to an abstract archive. More... | |
void | serializeFrom (mrpt::serialization::CArchive &in, uint8_t serial_version) override |
Pure virtual method for reading (deserializing) from an abstract archive. More... | |
Protected Attributes | |
std::string | m_selectedFont |
The selected font name. More... | |
const uint32_t * | m_selectedFontBitmaps |
Direct access to character bitmaps. More... | |
Data members | |
void * | img |
The internal IplImage pointer to the actual image content. More... | |
bool | m_imgIsReadOnly |
Set to true only when using setFromIplImageReadOnly. More... | |
bool | m_imgIsExternalStorage |
Set to true only when using setExternalStorage. More... | |
std::string | m_externalFile |
The file name of a external storage image. More... | |
RTTI stuff | |
using | Ptr = std::shared_ptr< CImage > |
using | ConstPtr = std::shared_ptr< const CImage > |
using | UniquePtr = std::unique_ptr< CImage > |
using | ConstUniquePtr = std::unique_ptr< const CImage > |
static mrpt::rtti::CLASSINIT | _init_CImage |
static const mrpt::rtti::TRuntimeClassId | runtimeClassId |
static constexpr const char * | className = "CImage" |
static const mrpt::rtti::TRuntimeClassId * | _GetBaseClass () |
static constexpr auto | getClassName () |
static const mrpt::rtti::TRuntimeClassId & | GetRuntimeClassIdStatic () |
static mrpt::rtti::CObject * | CreateObject () |
template<typename... Args> | |
static Ptr | Create (Args &&... args) |
template<typename... Args> | |
static UniquePtr | CreateUnique (Args &&... args) |
virtual const mrpt::rtti::TRuntimeClassId * | GetRuntimeClass () const override |
Returns information about the class of an object in runtime. More... | |
virtual mrpt::rtti::CObject * | clone () const override |
Returns a deep copy (clone) of the object, indepently of its class. More... | |
External storage-mode methods | |
static const std::string & | getImagesPathBase () |
By default, ".". More... | |
static void | setImagesPathBase (const std::string &path) |
void | setExternalStorage (const std::string &fileName) noexcept |
By using this method the image is marked as referenced to an external file, which will be loaded only under demand. More... | |
bool | isExternallyStored () const noexcept |
See setExternalStorage(). More... | |
std::string | getExternalStorageFile () const noexcept |
Only if isExternallyStored() returns true. More... | |
void | getExternalStorageFileAbsolutePath (std::string &out_path) const |
Only if isExternallyStored() returns true. More... | |
std::string | getExternalStorageFileAbsolutePath () const |
Only if isExternallyStored() returns true. More... | |
void | forceLoad () const |
For external storage image objects only, this method makes sure the image is loaded in memory. More... | |
void | unload () const noexcept |
For external storage image objects only, this method unloads the image from memory (or does nothing if already unloaded). More... | |
Set, load & save methods | |
static bool | loadTGA (const std::string &fileName, mrpt::img::CImage &out_RGB, mrpt::img::CImage &out_alpha) |
Loads a TGA true-color RGBA image as two CImage objects, one for the RGB channels plus a separate gray-level image with A channel. More... | |
void | loadFromMemoryBuffer (unsigned int width, unsigned int height, bool color, unsigned char *rawpixels, bool swapRedBlue=false) |
Reads the image from raw pixels buffer in memory. More... | |
void | loadFromMemoryBuffer (unsigned int width, unsigned int height, unsigned int bytesPerRow, unsigned char *red, unsigned char *green, unsigned char *blue) |
Reads a color image from three raw pixels buffers in memory. More... | |
void | loadFromIplImage (void *iplImage) |
Reads the image from a OpenCV IplImage object (making a COPY). More... | |
void | setFromIplImage (void *iplImage) |
Reads the image from a OpenCV IplImage object (WITHOUT making a copy). More... | |
void | setFromIplImageReadOnly (void *iplImage) |
Reads the image from a OpenCV IplImage object (WITHOUT making a copy) and from now on the image cannot be modified, just read. More... | |
void | setFromImageReadOnly (const CImage &other_img) |
Sets the internal IplImage pointer to that of another given image, WITHOUT making a copy, and from now on the image cannot be modified in this object (it will be neither freed, so the memory responsibility will still be of the original image object). More... | |
template<typename Derived > | |
void | setFromMatrix (const Eigen::MatrixBase< Derived > &m, bool matrix_is_normalized=true) |
Set the image from a matrix, interpreted as grayscale intensity values, in the range [0,1] (normalized=true) or [0,255] (normalized=false) Matrix indexes are assumed to be in this order: M(row,column) More... | |
template<typename Derived > | |
void | setFromRGBMatrices (const Eigen::MatrixBase< Derived > &m_r, const Eigen::MatrixBase< Derived > &m_g, const Eigen::MatrixBase< Derived > &m_b, bool matrix_is_normalized=true) |
Set the image from RGB matrices, given the pixels in the range [0,1] (normalized=true) or [0,255] (normalized=false) Matrix indexes are assumed to be in this order: M(row,column) More... | |
void | loadFromStreamAsJPEG (mrpt::io::CStream &in) |
Reads the image from a binary stream containing a binary jpeg file. More... | |
bool | loadFromFile (const std::string &fileName, int isColor=-1) |
Load image from a file, whose format is determined from the extension (internally uses OpenCV). More... | |
bool | loadFromXPM (const char *const *xpm_array, bool swap_rb=true) |
Loads the image from an XPM array, as #include'd from a ".xpm" file. More... | |
bool | saveToFile (const std::string &fileName, int jpeg_quality=95) const |
Save the image to a file, whose format is determined from the extension (internally uses OpenCV). More... | |
void | saveToStreamAsJPEG (mrpt::io::CStream &out, const int jpeg_quality=95) const |
Save image to binary stream as a JPEG (.jpg) compressed format. More... | |
using mrpt::img::CImage::ConstPtr = std::shared_ptr<const CImage > |
Definition at line 132 of file img/CImage.h.
using mrpt::img::CImage::ConstUniquePtr = std::unique_ptr<const CImage > |
Definition at line 132 of file img/CImage.h.
using mrpt::img::CImage::Ptr = std::shared_ptr< CImage > |
A type for the associated smart pointer
Definition at line 132 of file img/CImage.h.
using mrpt::img::CImage::UniquePtr = std::unique_ptr< CImage > |
Definition at line 132 of file img/CImage.h.
|
inherited |
CImage::CImage | ( | ) |
Default constructor: initialize an 1x1 RGB image.
Definition at line 81 of file CImage.cpp.
References CH_RGB, changeSize(), MRPT_END, and MRPT_START.
CImage::CImage | ( | unsigned int | width, |
unsigned int | height, | ||
TImageChannels | nChannels = CH_RGB , |
||
bool | originTopLeft = true |
||
) |
Constructor for a given image size and type.
Examples:
Definition at line 69 of file CImage.cpp.
References changeSize(), MRPT_END, and MRPT_START.
CImage::CImage | ( | const CImage & | o | ) |
Copy constructor, makes a full copy of the original image contents (unless it was externally stored, in that case, this new image will just point to the same image file).
Definition at line 94 of file CImage.cpp.
References MRPT_END, and MRPT_START.
|
inline |
Fast constructor that leaves the image uninitialized (the internal IplImage pointer set to nullptr).
Use only when you know the image will be soon be assigned another image. Example of usage:
Definition at line 170 of file img/CImage.h.
|
inline |
Fast constructor of a grayscale version of another image, making a reference to the original image if it already was in grayscale, or otherwise creating a new grayscale image and converting the original image into it.
It's very important to keep in mind that the original image can't be destroyed before the new object being created with this constructor. Example of usage:
Definition at line 190 of file img/CImage.h.
References grayscale(), isColor(), MRPT_UNUSED_PARAM, and setFromImageReadOnly().
CImage::CImage | ( | void * | iplImage | ) |
Constructor from an IPLImage*, making a copy of the image.
Definition at line 202 of file CImage.cpp.
References changeSize(), MRPT_END, and MRPT_START.
|
inlineexplicit |
Explicit constructor from a matrix, interpreted as grayscale intensity values, in the range [0,1] (normalized=true) or [0,255] (normalized=false)
Definition at line 212 of file img/CImage.h.
References setFromMatrix().
|
virtual |
|
staticprotected |
|
protected |
Resize the buffers in "img" to accomodate a new image size and/or format.
Definition at line 223 of file CImage.cpp.
References mrpt::format(), img, makeSureImageIsLoaded(), MRPT_END, MRPT_START, releaseIpl(), and THROW_EXCEPTION.
Referenced by CImage(), equalizeHist(), loadFromMemoryBuffer(), loadFromStreamAsJPEG(), loadFromXPM(), resize(), serializeFrom(), setFromMatrix(), and setFromRGBMatrices().
|
overridevirtual |
Returns a deep copy (clone) of the object, indepently of its class.
Implements mrpt::rtti::CObject.
Returns a RGB version of the grayscale image, or itself if it is already a RGB image.
Replaces this grayscale image with a RGB version of it.
Definition at line 2391 of file CImage.cpp.
References isColor(), and setFromIplImage().
Referenced by mrpt::vision::checkerBoardCameraCalibration(), mrpt::vision::checkerBoardStereoCalibration(), and find_chessboard_corners_multiple().
void CImage::colorImageInPlace | ( | ) |
Replaces this grayscale image with a RGB version of it.
Definition at line 2415 of file CImage.cpp.
References isColor(), and releaseIpl().
Moves an image from another object, erasing the origin image in the process (this is much faster than copying)
Definition at line 168 of file CImage.cpp.
References img, m_externalFile, m_imgIsExternalStorage, m_imgIsReadOnly, MRPT_END, MRPT_START, releaseIpl(), and THROW_EXCEPTION.
Referenced by mrpt::opengl::COpenGLViewport::internal_setImageView_fast().
Copies from another image, and, if that one is externally stored, the image file will be actually loaded into memory in "this" object.
CExceptionExternalImageNotFound | If the external image couldn't be loaded. |
Definition at line 148 of file CImage.cpp.
References getExternalStorageFileAbsolutePath(), isExternallyStored(), loadFromFile(), and THROW_TYPED_EXCEPTION_FMT.
float CImage::correlate | ( | const CImage & | img2int, |
int | width_init = 0 , |
||
int | height_init = 0 |
||
) | const |
Computes the correlation coefficient (returned as val), between two images This function use grayscale images only img1, img2 must be same size (by AJOGD @ DEC-2006)
Definition at line 1398 of file CImage.cpp.
References getHeight(), getWidth(), makeSureImageIsLoaded(), and THROW_EXCEPTION.
|
inlinestatic |
Definition at line 132 of file img/CImage.h.
|
static |
|
inlinestatic |
Definition at line 132 of file img/CImage.h.
|
inherited |
Draw a cross.
x0 | The point x coordinate |
y0 | The point y coordinate |
color | The color of the cross |
size | The size of the cross |
type | The cross type. It could be: 'x', '+' or ':'(like '+' but clear at the center dot) |
width | The desired width of the cross (this is IGNORED yet) |
Definition at line 305 of file CCanvas.cpp.
References mrpt::img::CCanvas::line(), and THROW_EXCEPTION.
Referenced by mrpt::img::CCanvas::drawFeatures(), mrpt::img::CCanvas::drawFeaturesSimple(), find_chessboard_corners_multiple(), mrpt::gui::CDisplayWindow::plot(), and mrpt::gui::CDisplayWindow::showImageAndPoints().
void CImage::cross_correlation | ( | const CImage & | patch_img, |
size_t & | u_max, | ||
size_t & | v_max, | ||
double & | max_val, | ||
int | u_search_ini = -1 , |
||
int | v_search_ini = -1 , |
||
int | u_search_size = -1 , |
||
int | v_search_size = -1 , |
||
CImage * | out_corr_image = nullptr |
||
) | const |
Computes the correlation between this image and another one, encapsulating the openCV function cvMatchTemplate.
patch_img | The "patch" image, which must be equal, or smaller than "this" image. This function supports gray-scale (1 channel only) images. |
u_search_ini | The "x" coordinate of the search window. |
v_search_ini | The "y" coordinate of the search window. |
u_search_size | The width of the search window. |
v_search_size | The height of the search window. |
u_max | The u coordinate where find the maximun cross correlation value. |
v_max | The v coordinate where find the maximun cross correlation value |
max_val | The maximun value of cross correlation which we can find |
out_corr_image | If a !=nullptr pointer is provided, it will be saved here the correlation image. The size of the output image is (this_width-patch_width+1, this_height-patch_height+1 ) Note: By default, the search area is the whole (this) image. (by AJOGD @ MAR-2007) |
Definition at line 1454 of file CImage.cpp.
References ASSERT_, getAs(), isColor(), makeSureImageIsLoaded(), mrpt::system::os::memcpy(), MRPT_END, MRPT_START, mrpt::round(), setFromIplImage(), and THROW_EXCEPTION.
Referenced by mrpt::vision::CFeature::patchCorrelationTo().
void CImage::cross_correlation_FFT | ( | const CImage & | in_img, |
math::CMatrixFloat & | out_corr, | ||
int | u_search_ini = -1 , |
||
int | v_search_ini = -1 , |
||
int | u_search_size = -1 , |
||
int | v_search_size = -1 , |
||
float | biasThisImg = 0 , |
||
float | biasInImg = 0 |
||
) | const |
Computes the correlation matrix between this image and another one.
This implementation uses the 2D FFT for achieving reduced computation time.
in_img | The "patch" image, which must be equal, or smaller than "this" image. This function supports gray-scale (1 channel only) images. |
u_search_ini | The "x" coordinate of the search window. |
v_search_ini | The "y" coordinate of the search window. |
u_search_size | The width of the search window. |
v_search_size | The height of the search window. |
out_corr | The output for the correlation matrix, which will be "u_search_size" x "v_search_size" |
biasThisImg | This optional parameter is a fixed "bias" value to be substracted to the pixels of "this" image before performing correlation. |
biasInImg | This optional parameter is a fixed "bias" value to be substracted to the pixels of "in_img" image before performing correlation. Note: By default, the search area is the whole (this) image. (by JLBC @ JAN-2006) |
Definition at line 1738 of file CImage.cpp.
References ASSERT_, mrpt::math::dft2_complex(), getAsMatrix(), getHeight(), getWidth(), mrpt::math::idft2_complex(), makeSureImageIsLoaded(), MRPT_END, MRPT_START, mrpt::round2up(), and mrpt::square().
Referenced by mrpt::slam::CGridMapAligner::AlignPDF_correlation().
bool CImage::drawChessboardCorners | ( | std::vector< TPixelCoordf > & | cornerCoords, |
unsigned int | check_size_x, | ||
unsigned int | check_size_y, | ||
unsigned int | lines_width = 1 , |
||
unsigned int | r = 4 |
||
) |
Draw onto this image the detected corners of a chessboard.
The length of cornerCoords must be the product of the two check_sizes.
cornerCoords | [IN] The pixel coordinates of all the corners. |
check_size_x | [IN] The number of squares, in the X direction |
check_size_y | [IN] The number of squares, in the Y direction |
The length of cornerCoords must be the product of the two check_sizes.
cornerCoords | [IN] The pixel coordinates of all the corners. |
check_size_x | [IN] The number of squares, in the X direction |
check_size_y | [IN] The number of squares, in the Y direction |
Definition at line 2327 of file CImage.cpp.
References mrpt::img::TColor::blue(), mrpt::format(), mrpt::img::CCanvas::selectTextFont(), and mrpt::img::CCanvas::textOut().
Referenced by mrpt::vision::checkerBoardStereoCalibration().
|
overridevirtual |
Draws a circle of a given radius.
x | The center - x coordinate in pixels. |
y | The center - y coordinate in pixels. |
radius | The radius - in pixels. |
color | The color of the circle. |
width | The desired width of the line |
Reimplemented from mrpt::img::CCanvas.
Definition at line 1315 of file CImage.cpp.
References ASSERT_, and makeSureImageIsLoaded().
Referenced by mrpt::vision::CFeatureExtraction::internal_computeSpinImageDescriptors().
|
inlineinherited |
Draws a set of marks (or scaled circles for features with scale) onto the image, given a generic container of features.
The class of FEATURELIST can be:
Definition at line 323 of file CCanvas.h.
References mrpt::img::CCanvas::cross(), mrpt::img::CCanvas::drawCircle(), mrpt::format(), mrpt::img::TColor::red(), mrpt::round(), and mrpt::img::CCanvas::textOut().
|
inlineinherited |
Draws a set of marks onto the image, given a generic container of entities having just "x" and "y" fields.
The class of FEATURELIST can be, for example, std::vector<mrpt::math::TPoint2D>, std::vector<TPixelCoordsf> or mrpt::vision::CFeatureList
Definition at line 302 of file CCanvas.h.
References mrpt::img::CCanvas::cross(), and mrpt::round().
|
virtualinherited |
Draws an image as a bitmap at a given position.
x0 | The top-left corner x coordinates on this canvas where the image is to be drawn |
y0 | The top-left corner y coordinates on this canvas where the image is to be drawn |
img | The image to be drawn in this canvas This method may be redefined in some classes implementing this interface in a more appropiate manner. |
Reimplemented in mrpt::img::CEnhancedMetaFile.
Definition at line 254 of file CCanvas.cpp.
References MRPT_END, MRPT_START, and mrpt::img::CCanvas::setPixel().
Referenced by mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), mrpt::slam::CMetricMapBuilderRBPF::drawCurrentEstimationToImage(), and mrpt::img::CEnhancedMetaFile::drawImage().
|
virtualinherited |
Draws an image as a bitmap at a given position, with some custom scale and rotation changes.
x0 | The top-left corner x coordinates on this canvas where the image is to be drawn |
y0 | The top-left corner y coordinates on this canvas where the image is to be drawn |
rotation | The rotation in radians, positive values being anti-clockwise direction, 0 is the normal position. |
scale | The scale factor, e.g. 2 means twice the original size. |
img | The image to be drawn in this canvas This method may be redefined in some classes implementing this interface in a more appropiate manner. |
Reimplemented in mrpt::img::CEnhancedMetaFile.
Definition at line 286 of file CCanvas.cpp.
References MRPT_END, MRPT_START, MRPT_UNUSED_PARAM, and THROW_EXCEPTION.
|
inlineinherited |
Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer).
Definition at line 169 of file CObject.h.
References mrpt::rtti::CObject::clone().
Referenced by mrpt::obs::CRawlog::addActions(), and mrpt::obs::CRawlog::addObservations().
|
inlineinherited |
Draws an ellipse representing a given confidence interval of a 2D Gaussian distribution.
mean_x | The x coordinate of the center point of the ellipse. |
mean_y | The y coordinate of the center point of the ellipse. |
cov2D | A 2x2 covariance matrix. |
confIntervalStds | How many "sigmas" for the confidence level (i.e. 2->95%, 3=99.97%,...) |
color | The color of the ellipse |
width | The desired width of the line (this is IGNORED in this virtual class) |
nEllipsePoints | The number of points to generate to approximate the ellipse shape. |
std::exception | On an invalid matrix. |
Definition at line 252 of file CCanvas.h.
References mrpt::img::CCanvas::line(), M_2PI, MRPT_END_WITH_CLEAN_UP, MRPT_START, and mrpt::round().
Equalize the image histogram, saving the new image in the given output object.
Definition at line 2478 of file CImage.cpp.
References ASSERT_, changeSize(), getAs(), and isOriginTopLeft().
void CImage::equalizeHistInPlace | ( | ) |
Equalize the image histogram, replacing the original image.
Definition at line 2517 of file CImage.cpp.
References ASSERT_, and releaseIpl().
Referenced by mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation().
void CImage::extract_patch | ( | CImage & | patch, |
const unsigned int | col = 0 , |
||
const unsigned int | row = 0 , |
||
const unsigned int | width = 1 , |
||
const unsigned int | height = 1 |
||
) | const |
Extract a patch from this image, saveing it into "patch" (its previous contents will be overwritten).
The patch to extract starts at (col,row) and has the given dimensions.
Definition at line 1359 of file CImage.cpp.
References ASSERT_, mrpt::format(), img, makeSureImageIsLoaded(), mrpt::system::os::memcpy(), resize(), and THROW_EXCEPTION.
Referenced by mrpt::vision::computeHistogramOfOrientations(), mrpt::vision::computeMoreDescriptors(), mrpt::vision::computeMultiOrientations(), mrpt::vision::computeMultiResolutionDescriptors(), mrpt::vision::CFeatureExtraction::extractFeaturesAKAZE(), mrpt::vision::CFeatureExtraction::extractFeaturesFAST(), mrpt::vision::CFeatureExtraction::extractFeaturesFASTER_N(), mrpt::vision::CFeatureExtraction::extractFeaturesKLT(), mrpt::vision::CFeatureExtraction::extractFeaturesLSD(), mrpt::vision::CFeatureExtraction::extractFeaturesORB(), mrpt::vision::CFeatureExtraction::extractFeaturesSIFT(), mrpt::vision::CFeatureExtraction::extractFeaturesSURF(), mrpt::obs::CObservation3DRangeScan::getZoneAsObs(), mrpt::vision::openCV_cross_correlation(), mrpt::vision::detail::trackFeatures_addNewFeats< CFeatureList >(), and mrpt::vision::detail::trackFeatures_updatePatch< CFeatureList >().
|
virtualinherited |
Draws a filled rectangle.
x0 | The top-left x coordinate |
y0 | The top-left y coordinate |
x1 | The right-bottom x coordinate |
y1 | The right-bottom y coordinate |
color | The color of the rectangle fill This method may be redefined in some classes implementing this interface in a more appropiate manner. |
Definition at line 214 of file CCanvas.cpp.
References mrpt::img::CCanvas::getHeight(), mrpt::img::CCanvas::getWidth(), min, and mrpt::img::CCanvas::setPixel().
Referenced by mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), mrpt::img::CEnhancedMetaFile::CEnhancedMetaFile(), and mrpt::gui::CDisplayWindow::plot().
Filter the image with a Gaussian filter with a window size WxH, replacing "this" image by the filtered one.
Definition at line 2167 of file CImage.cpp.
References ASSERT_, loadFromIplImage(), and makeSureImageIsLoaded().
void CImage::filterGaussianInPlace | ( | int | W = 3 , |
int | H = 3 |
||
) |
Filter the image with a Gaussian filter with a window size WxH, returning the filtered image in out_img
Definition at line 2193 of file CImage.cpp.
References ASSERT_, makeSureImageIsLoaded(), and releaseIpl().
Filter the image with a Median filter with a window size WxW, returning the filtered image in out_img
Definition at line 2117 of file CImage.cpp.
References ASSERT_, loadFromIplImage(), and makeSureImageIsLoaded().
void CImage::filterMedianInPlace | ( | int | W = 3 | ) |
Filter the image with a Median filter with a window size WxH, replacing "this" image by the filtered one.
Definition at line 2143 of file CImage.cpp.
References ASSERT_, makeSureImageIsLoaded(), and releaseIpl().
void CImage::flipHorizontal | ( | ) |
Flips the image horizontally.
Definition at line 1994 of file CImage.cpp.
void CImage::flipVertical | ( | bool | also_swapRB = false | ) |
Flips the image vertically.
Definition at line 1984 of file CImage.cpp.
|
inline |
For external storage image objects only, this method makes sure the image is loaded in memory.
Note that usually images are loaded on-the-fly on first access and there's no need to call this. \unload
Definition at line 817 of file img/CImage.h.
References makeSureImageIsLoaded().
unsigned char * CImage::get_unsafe | ( | unsigned int | col, |
unsigned int | row, | ||
unsigned int | channel = 0 |
||
) | const |
Access to pixels without checking boundaries - Use normally the () operator better, which checks the coordinates.
Definition at line 491 of file CImage.cpp.
References makeSureImageIsLoaded().
Referenced by getAsMatrix(), getAsRGBMatrices(), mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation(), mrpt::vision::CFeatureExtraction::internal_computeSpinImageDescriptors(), mrpt::maps::detail::pointmap_traits< CColouredPointsMap >::internal_loadFromRangeScan3D_prepareOneRange(), mrpt::obs::detail::project3DPointsFromDepthImageInto(), setFromMatrix(), and setFromRGBMatrices().
|
inline |
Returns a pointer to a T* containing the image - the idea is to call like "img.getAs<IplImage>()" so we can avoid here including OpenCV's headers.
Definition at line 608 of file img/CImage.h.
References img, and makeSureImageIsLoaded().
|
inline |
Returns a pointer to a const T* containing the image - the idea is to call like "img.getAs<IplImage>()" so we can avoid here including OpenCV's headers.
Definition at line 599 of file img/CImage.h.
References img, and makeSureImageIsLoaded().
Referenced by mrpt::vision::checkerBoardCameraCalibration(), mrpt::vision::computeMoreDescriptors(), mrpt::vision::computeMultiOrientations(), mrpt::vision::computeMultiResolutionDescriptors(), mrpt::vision::computeSAD(), cross_correlation(), cvFindChessboardCorners3(), mrpt::detectors::CCascadeClassifierDetection::detectObjects_Impl(), do_special_dilation(), equalizeHist(), mrpt::vision::CFeatureExtraction::extractFeaturesAKAZE(), mrpt::vision::CFeatureExtraction::extractFeaturesFAST(), mrpt::vision::CFeatureExtraction::extractFeaturesKLT(), mrpt::vision::CFeatureExtraction::extractFeaturesLSD(), mrpt::vision::CFeatureExtraction::extractFeaturesORB(), mrpt::vision::CFeatureExtraction::extractFeaturesSIFT(), mrpt::vision::CFeatureExtraction::extractFeaturesSURF(), find_chessboard_corners_multiple(), mrpt::vision::CFeatureExtraction::internal_computeBLDLineDescriptors(), mrpt::vision::CFeatureExtraction::internal_computeLATCHDescriptors(), mrpt::vision::CFeatureExtraction::internal_computeLogPolarImageDescriptors(), mrpt::vision::CFeatureExtraction::internal_computeORBDescriptors(), mrpt::vision::CFeatureExtraction::internal_computePolarImageDescriptors(), mrpt::vision::CFeatureExtraction::internal_computeSiftDescriptors(), mrpt::vision::CFeatureExtraction::internal_computeSurfDescriptors(), joinImagesHorz(), mrpt::vision::openCV_cross_correlation(), mrpt::vision::CStereoRectifyMap::rectify(), mrpt::vision::CFeatureTracker_KL::trackFeatures_impl_templ(), and mrpt::vision::CUndistortMap::undistort().
float CImage::getAsFloat | ( | unsigned int | col, |
unsigned int | row | ||
) | const |
Returns the contents of a given pixel (for gray-scale images, in color images the gray scale equivalent is computed for the pixel), in float format: [0,255]->[0,1] The coordinate origin is pixel(0,0)=top-left corner of the image.
std::exception | On pixel coordinates out of bounds |
Definition at line 959 of file CImage.cpp.
References isColor().
float CImage::getAsFloat | ( | unsigned int | col, |
unsigned int | row, | ||
unsigned int | channel | ||
) | const |
Returns the contents of a given pixel at the desired channel, in float format: [0,255]->[0,1] The coordinate origin is pixel(0,0)=top-left corner of the image.
std::exception | On pixel coordinates out of bounds |
Definition at line 948 of file CImage.cpp.
References makeSureImageIsLoaded().
Referenced by mrpt::vision::computeHistogramOfOrientations(), getMaxAsFloat(), and mrpt::maps::COccupancyGridMap2D::loadFromBitmap().
void CImage::getAsMatrix | ( | mrpt::math::CMatrixFloat & | outMatrix, |
bool | doResize = true , |
||
int | x_min = 0 , |
||
int | y_min = 0 , |
||
int | x_max = -1 , |
||
int | y_max = -1 |
||
) | const |
Returns the image as a matrix with pixel grayscale values in the range [0,1].
Matrix indexes in this order: M(row,column)
doResize | If set to true (default), the output matrix will be always the size of the image at output. If set to false, the matrix will be enlarged to the size of the image, but it will not be cropped if it has room enough (useful for FFT2D,...) |
x_min | The starting "x" coordinate to extract (default=0=the first column) |
y_min | The starting "y" coordinate to extract (default=0=the first row) |
x_max | The final "x" coordinate (inclusive) to extract (default=-1=the last column) |
y_max | The final "y" coordinate (inclusive) to extract (default=-1=the last row) |
Definition at line 1616 of file CImage.cpp.
References ASSERT_, get_unsafe(), isColor(), makeSureImageIsLoaded(), MRPT_END, and MRPT_START.
Referenced by cross_correlation_FFT(), mrpt::vision::CFeatureExtraction::internal_computeLogPolarImageDescriptors(), and mrpt::vision::CFeatureExtraction::internal_computePolarImageDescriptors().
void CImage::getAsMatrixTiled | ( | math::CMatrix & | outMatrix | ) | const |
Returns the image as a matrix, where the image is "tiled" (repeated) the required number of times to fill the entire size of the matrix on input.
Definition at line 1831 of file CImage.cpp.
References ASSERT_, isColor(), makeSureImageIsLoaded(), MRPT_END, and MRPT_START.
void CImage::getAsRGBMatrices | ( | mrpt::math::CMatrixFloat & | outMatrixR, |
mrpt::math::CMatrixFloat & | outMatrixG, | ||
mrpt::math::CMatrixFloat & | outMatrixB, | ||
bool | doResize = true , |
||
int | x_min = 0 , |
||
int | y_min = 0 , |
||
int | x_max = -1 , |
||
int | y_max = -1 |
||
) | const |
Returns the image as RGB matrices with pixel values in the range [0,1].
Matrix indexes in this order: M(row,column)
doResize | If set to true (default), the output matrix will be always the size of the image at output. If set to false, the matrix will be enlarged to the size of the image, but it will not be cropped if it has room enough (useful for FFT2D,...) |
x_min | The starting "x" coordinate to extract (default=0=the first column) |
y_min | The starting "y" coordinate to extract (default=0=the first row) |
x_max | The final "x" coordinate (inclusive) to extract (default=-1=the last column) |
y_max | The final "y" coordinate (inclusive) to extract (default=-1=the last row) |
Definition at line 1672 of file CImage.cpp.
References ASSERT_, get_unsafe(), isColor(), makeSureImageIsLoaded(), MRPT_END, and MRPT_START.
TImageChannels CImage::getChannelCount | ( | ) | const |
Returns the number of channels, typically 1 (GRAY) or 3 (RGB)
Definition at line 920 of file CImage.cpp.
References ASSERT_, and makeSureImageIsLoaded().
Referenced by mrpt::vision::CFeatureExtraction::internal_computeLogPolarImageDescriptors(), and mrpt::vision::CFeatureExtraction::internal_computePolarImageDescriptors().
const char * CImage::getChannelsOrder | ( | ) | const |
Returns a string of the form "BGR","RGB" or "GRAY" indicating the channels ordering.
Definition at line 1180 of file CImage.cpp.
References ASSERT_, makeSureImageIsLoaded(), and THROW_EXCEPTION.
Referenced by mrpt::maps::CColouredPointsMap::colourFromObservation().
|
inlinestaticconstexpr |
Definition at line 132 of file img/CImage.h.
|
inlinenoexcept |
Only if isExternallyStored() returns true.
Definition at line 796 of file img/CImage.h.
References m_externalFile.
Referenced by mrpt::obs::CObservation3DRangeScan::getDescriptionAsText().
|
inline |
Only if isExternallyStored() returns true.
Definition at line 805 of file img/CImage.h.
Referenced by makeSureImageIsLoaded().
void CImage::getExternalStorageFileAbsolutePath | ( | std::string & | out_path | ) | const |
Only if isExternallyStored() returns true.
Definition at line 1960 of file CImage.cpp.
References ASSERT_, IMAGES_PATH_BASE(), and m_externalFile.
Referenced by copyFromForceLoad().
|
overridevirtual |
Returns the height of the image in pixels.
Implements mrpt::img::CCanvas.
Definition at line 892 of file CImage.cpp.
References ASSERT_, and makeSureImageIsLoaded().
Referenced by mrpt::opengl::CMeshFast::adjustGridToImageAR(), mrpt::opengl::CMesh::adjustGridToImageAR(), mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), mrpt::vision::checkerBoardCameraCalibration(), mrpt::vision::checkerBoardStereoCalibration(), mrpt::maps::CColouredPointsMap::colourFromObservation(), mrpt::vision::computeMoreDescriptors(), mrpt::vision::computeMultiOrientations(), mrpt::vision::computeMultiResolutionDescriptors(), correlate(), cross_correlation_FFT(), cvFindChessboardCorners3(), mrpt::slam::CMetricMapBuilderRBPF::drawCurrentEstimationToImage(), mrpt::vision::CFeatureExtraction::extractFeaturesAKAZE(), mrpt::vision::CFeatureExtraction::extractFeaturesFAST(), mrpt::vision::CFeatureExtraction::extractFeaturesFASTER_N(), mrpt::vision::CFeatureExtraction::extractFeaturesKLT(), mrpt::vision::CFeatureExtraction::extractFeaturesLSD(), mrpt::vision::CFeatureExtraction::extractFeaturesORB(), mrpt::vision::CFeatureExtraction::extractFeaturesSIFT(), mrpt::vision::CFeatureExtraction::extractFeaturesSURF(), find_chessboard_corners_multiple(), getMaxAsFloat(), mrpt::vision::CFeatureExtraction::internal_computeSiftDescriptors(), mrpt::vision::CFeatureExtraction::internal_computeSpinImageDescriptors(), mrpt::maps::detail::pointmap_traits< CColouredPointsMap >::internal_loadFromRangeScan3D_init(), mrpt::vision::CGenericFeatureTracker::internal_trackFeatures(), joinImagesHorz(), mrpt::maps::COccupancyGridMap2D::loadFromBitmap(), mrpt::vision::matchMultiResolutionFeatures(), mrpt::vision::openCV_cross_correlation(), mrpt::vision::CFeature::patchCorrelationTo(), mrpt::obs::detail::project3DPointsFromDepthImageInto(), mrpt::maps::COccupancyGridMap2D::saveAsEMFTwoMapsWithCorrespondences(), mrpt::gui::CDisplayWindow::showTiledImageAndPoints(), mrpt::vision::detail::trackFeatures_addNewFeats_simple_list(), mrpt::vision::CFeatureTracker_KL::trackFeatures_impl_templ(), mrpt::vision::detail::trackFeatures_updatePatch< CFeatureList >(), and update_patch().
|
static |
By default, ".".
Definition at line 53 of file CImage.cpp.
References IMAGES_PATH_BASE().
Referenced by mrpt::graphslam::CGraphSlamEngine< mrpt::graphs::CNetworkOfPoses2DInf >::initClass().
float CImage::getMaxAsFloat | ( | ) | const |
Return the maximum pixel value of the image, as a float value in the range [0,1].
Definition at line 979 of file CImage.cpp.
References getAsFloat(), getHeight(), and getWidth().
size_t CImage::getRowStride | ( | ) | const |
Returns the row stride of the image: this is the number of bytes between two consecutive rows.
You can access the pointer to the first row with get_unsafe(0,0)
Definition at line 878 of file CImage.cpp.
References ASSERT_, and makeSureImageIsLoaded().
|
overridevirtual |
Returns information about the class of an object in runtime.
Reimplemented from mrpt::serialization::CSerializable.
|
static |
|
inline |
Return the size of the image.
Definition at line 661 of file img/CImage.h.
Referenced by scaleDouble().
void CImage::getSize | ( | TImageSize & | s | ) | const |
Return the size of the image.
Definition at line 851 of file CImage.cpp.
References ASSERT_, and makeSureImageIsLoaded().
Referenced by mrpt::vision::checkerBoardStereoCalibration(), and mrpt::vision::detail::trackFeatures_addNewFeats< CFeatureList >().
|
overridevirtual |
Returns the width of the image in pixels.
Implements mrpt::img::CCanvas.
Definition at line 864 of file CImage.cpp.
References ASSERT_, and makeSureImageIsLoaded().
Referenced by mrpt::opengl::CMeshFast::adjustGridToImageAR(), mrpt::opengl::CMesh::adjustGridToImageAR(), mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), mrpt::vision::checkerBoardCameraCalibration(), mrpt::vision::checkerBoardStereoCalibration(), mrpt::maps::CColouredPointsMap::colourFromObservation(), mrpt::vision::computeMoreDescriptors(), mrpt::vision::computeMultiOrientations(), mrpt::vision::computeMultiResolutionDescriptors(), correlate(), cross_correlation_FFT(), cvFindChessboardCorners3(), mrpt::vision::CFeatureExtraction::extractFeaturesAKAZE(), mrpt::vision::CFeatureExtraction::extractFeaturesFAST(), mrpt::vision::CFeatureExtraction::extractFeaturesFASTER_N(), mrpt::vision::CFeatureExtraction::extractFeaturesKLT(), mrpt::vision::CFeatureExtraction::extractFeaturesLSD(), mrpt::vision::CFeatureExtraction::extractFeaturesORB(), mrpt::vision::CFeatureExtraction::extractFeaturesSIFT(), mrpt::vision::CFeatureExtraction::extractFeaturesSURF(), find_chessboard_corners_multiple(), getMaxAsFloat(), mrpt::vision::CFeatureExtraction::internal_computeSiftDescriptors(), mrpt::vision::CFeatureExtraction::internal_computeSpinImageDescriptors(), mrpt::maps::detail::pointmap_traits< CColouredPointsMap >::internal_loadFromRangeScan3D_init(), mrpt::vision::CGenericFeatureTracker::internal_trackFeatures(), mrpt::maps::COccupancyGridMap2D::loadFromBitmap(), mrpt::vision::matchMultiResolutionFeatures(), mrpt::vision::openCV_cross_correlation(), mrpt::vision::CFeature::patchCorrelationTo(), mrpt::obs::detail::project3DPointsFromDepthImageInto(), mrpt::maps::COccupancyGridMap2D::saveAsEMFTwoMapsWithCorrespondences(), mrpt::gui::CDisplayWindow::showImagesAndMatchedPoints(), mrpt::gui::CDisplayWindow::showTiledImageAndPoints(), mrpt::vision::detail::trackFeatures_addNewFeats_simple_list(), mrpt::vision::CFeatureTracker_KL::trackFeatures_impl_templ(), mrpt::vision::detail::trackFeatures_updatePatch< CFeatureList >(), and update_patch().
CImage CImage::grayscale | ( | ) | const |
Returns a grayscale version of the image, or itself if it is already a grayscale image.
Definition at line 994 of file CImage.cpp.
Referenced by CImage(), and mrpt::vision::openCV_cross_correlation().
Returns a grayscale version of the image, or itself if it is already a grayscale image.
Definition at line 1032 of file CImage.cpp.
References ASSERT_, ipl_to_grayscale(), makeSureImageIsLoaded(), and setFromIplImage().
void CImage::grayscaleInPlace | ( | ) |
Replaces the image with a grayscale version of it.
Definition at line 1055 of file CImage.cpp.
References ASSERT_, ipl_to_grayscale(), makeSureImageIsLoaded(), and setFromIplImage().
bool CImage::isColor | ( | ) | const |
Returns true if the image is RGB, false if it is grayscale.
Definition at line 906 of file CImage.cpp.
References ASSERT_, and makeSureImageIsLoaded().
Referenced by CImage(), colorImage(), colorImageInPlace(), mrpt::maps::CColouredPointsMap::colourFromObservation(), cross_correlation(), getAsFloat(), getAsMatrix(), getAsMatrixTiled(), getAsRGBMatrices(), mrpt::vision::CFeatureExtraction::internal_computeSpinImageDescriptors(), mrpt::maps::detail::pointmap_traits< CColouredPointsMap >::internal_loadFromRangeScan3D_init(), loadFromFile(), loadFromStreamAsJPEG(), mrpt::vision::openCV_cross_correlation(), mrpt::obs::detail::project3DPointsFromDepthImageInto(), mrpt::vision::CStereoRectifyMap::rectify(), and serializeTo().
|
inlinenoexcept |
See setExternalStorage().
Definition at line 793 of file img/CImage.h.
References m_imgIsExternalStorage.
Referenced by mrpt::vision::checkerBoardCameraCalibration(), mrpt::vision::checkerBoardStereoCalibration(), copyFromForceLoad(), and mrpt::obs::CObservation3DRangeScan::getDescriptionAsText().
bool CImage::isOriginTopLeft | ( | ) | const |
Returns true if the coordinates origin is top-left, or false if it is bottom-left
Definition at line 934 of file CImage.cpp.
References ASSERT_, makeSureImageIsLoaded(), and THROW_EXCEPTION.
Referenced by equalizeHist(), mrpt::vision::CStereoRectifyMap::rectify(), and mrpt::img::CCanvas::textOut().
Joins two images side-by-side horizontally.
Both images must have the same number of rows and be of the same type (i.e. depth and color mode)
im1 | [IN] The first image. |
im2 | [IN] The other image. |
Definition at line 2437 of file CImage.cpp.
References ASSERT_, getAs(), getHeight(), and setFromIplImageReadOnly().
Referenced by mrpt::gui::CDisplayWindow::showImagesAndMatchedPoints().
float CImage::KLT_response | ( | const unsigned int | x, |
const unsigned int | y, | ||
const unsigned int | half_window_size | ||
) | const |
Compute the KLT response at a given pixel (x,y) - Only for grayscale images (for efficiency it avoids converting to grayscale internally).
See KLT_response_optimized for more details on the internal optimizations of this method, but this graph shows a general view:
Definition at line 2593 of file CImage.cpp.
References ASSERT_, and ASSERTMSG_.
Referenced by mrpt::vision::CFeatureExtraction::extractFeaturesFAST(), mrpt::vision::CGenericFeatureTracker::internal_trackFeatures(), mrpt::vision::detail::trackFeatures_checkResponses< CFeatureList >(), and mrpt::vision::detail::trackFeatures_checkResponses_impl_simple().
|
overridevirtual |
Draws a line.
x0 | The starting point x coordinate |
y0 | The starting point y coordinate |
x1 | The end point x coordinate |
y1 | The end point y coordinate |
color | The color of the line |
width | The desired width of the line (this is IGNORED in this virtual class) This method may be redefined in some classes implementing this interface in a more appropiate manner. |
Reimplemented from mrpt::img::CCanvas.
Definition at line 1296 of file CImage.cpp.
References ASSERT_, makeSureImageIsLoaded(), and MRPT_UNUSED_PARAM.
Referenced by main(), mrpt::gui::CDisplayWindow::plot(), and mrpt::gui::CDisplayWindow::showTiledImageAndPoints().
bool CImage::loadFromFile | ( | const std::string & | fileName, |
int | isColor = -1 |
||
) |
Load image from a file, whose format is determined from the extension (internally uses OpenCV).
fileName | The file to read from. |
isColor | Specifies colorness of the loaded image:
|
Definition at line 271 of file CImage.cpp.
References isColor(), MRPT_END, MRPT_START, releaseIpl(), and THROW_EXCEPTION.
Referenced by mrpt::vision::checkerBoardCameraCalibration(), copyFromForceLoad(), and makeSureImageIsLoaded().
Reads the image from a OpenCV IplImage object (making a COPY).
Definition at line 321 of file CImage.cpp.
References ASSERT_, MRPT_END, MRPT_START, releaseIpl(), and THROW_EXCEPTION.
Referenced by mrpt::vision::computeMultiResolutionDescriptors(), filterGaussian(), filterMedian(), and rectifyImage().
void CImage::loadFromMemoryBuffer | ( | unsigned int | width, |
unsigned int | height, | ||
bool | color, | ||
unsigned char * | rawpixels, | ||
bool | swapRedBlue = false |
||
) |
Reads the image from raw pixels buffer in memory.
Definition at line 385 of file CImage.cpp.
References img, m_imgIsExternalStorage, m_imgIsReadOnly, mrpt::system::os::memcpy(), MRPT_END, MRPT_START, resize(), and THROW_EXCEPTION.
Referenced by mrpt::hwdrivers::CImageGrabber_dc1394::getObservation(), mrpt::hwdrivers::CImageGrabber_FlyCapture2::getObservation(), mrpt::hwdrivers::CDUO3DCamera::getObservations(), mrpt::hwdrivers::CFFMPEG_InputStream::retrieveFrame(), and mrpt::gui::wxImage2MRPTImage().
void CImage::loadFromMemoryBuffer | ( | unsigned int | width, |
unsigned int | height, | ||
unsigned int | bytesPerRow, | ||
unsigned char * | red, | ||
unsigned char * | green, | ||
unsigned char * | blue | ||
) |
Reads a color image from three raw pixels buffers in memory.
bytesPerRow is the number of bytes per row per channel, i.e. the row increment.
Definition at line 1194 of file CImage.cpp.
References changeSize(), img, MRPT_END, MRPT_START, and red.
void CImage::loadFromStreamAsJPEG | ( | mrpt::io::CStream & | in | ) |
Reads the image from a binary stream containing a binary jpeg file.
std::exception | On pixel coordinates out of bounds |
Definition at line 467 of file CImage_JPEG_streams.cpp.
References changeSize(), img, isColor(), jpeg_create_decompress, jpeg_stdio_src(), JPOOL_IMAGE, mrpt::system::os::memcpy(), MRPT_END, MRPT_START, jpeg_decompress_struct::out_color_components, jpeg_decompress_struct::output_components, jpeg_decompress_struct::output_height, jpeg_decompress_struct::output_width, and TRUE.
Referenced by mrpt::hwdrivers::CRovio::captureImageAsync(), and serializeFrom().
bool mrpt::img::CImage::loadFromXPM | ( | const char *const * | xpm_data, |
bool | swap_rb = true |
||
) |
Loads the image from an XPM array, as #include'd from a ".xpm" file.
[in] | swap_rb | Swaps red/blue channels from loaded image. Seems to be always needed, so it's enabled by default. |
Definition at line 482 of file CImage_loadXPM.cpp.
References ASSERTMSG_, XPMColorMapData::B, CH_RGB, changeSize(), XPMColorMapData::G, GetRGBFromName(), MRPT_UNUSED_PARAM, ParseColor(), XPMColorMapData::R, swapRB(), THROW_EXCEPTION, and THROW_EXCEPTION_FMT.
|
static |
|
protected |
Checks if the image is of type "external storage", and if so and not loaded yet, load it.
CExceptionExternalImageNotFound |
Definition at line 1928 of file CImage.cpp.
References getExternalStorageFileAbsolutePath(), loadFromFile(), m_externalFile, m_imgIsExternalStorage, THROW_EXCEPTION, and THROW_TYPED_EXCEPTION_FMT.
Referenced by changeSize(), correlate(), cross_correlation(), cross_correlation_FFT(), drawCircle(), extract_patch(), filterGaussian(), filterGaussianInPlace(), filterMedian(), filterMedianInPlace(), forceLoad(), get_unsafe(), getAs(), getAsFloat(), getAsMatrix(), getAsMatrixTiled(), getAsRGBMatrices(), getChannelCount(), getChannelsOrder(), getHeight(), getRowStride(), getSize(), getWidth(), grayscale(), grayscaleInPlace(), isColor(), isOriginTopLeft(), line(), normalize(), operator()(), rectifyImage(), rectifyImageInPlace(), rotateImage(), saveToFile(), saveToStreamAsJPEG(), scaleHalf(), scaleHalfSmooth(), scaleImage(), setChannelsOrder_BGR(), setChannelsOrder_RGB(), setFromRGBMatrices(), setOriginTopLeft(), setPixel(), and swapRB().
void CImage::normalize | ( | ) |
Optimize the brightness range of an image without using histogram Only for one channel images.
Definition at line 1571 of file CImage.cpp.
References ASSERT_, ASSERTMSG_, makeSureImageIsLoaded(), and val.
Definition at line 132 of file img/CImage.h.
Definition at line 132 of file img/CImage.h.
Definition at line 132 of file img/CImage.h.
Definition at line 132 of file img/CImage.h.
|
inline |
Definition at line 132 of file img/CImage.h.
|
inlinenoexcept |
Definition at line 132 of file img/CImage.h.
Definition at line 132 of file img/CImage.h.
|
inline |
Definition at line 132 of file img/CImage.h.
unsigned char * CImage::operator() | ( | unsigned int | col, |
unsigned int | row, | ||
unsigned int | channel = 0 |
||
) | const |
Returns a pointer to a given pixel information.
The coordinate origin is pixel(0,0)=top-left corner of the image.
std::exception | On pixel coordinates out of bounds |
Definition at line 452 of file CImage.cpp.
References ASSERT_, mrpt::format(), makeSureImageIsLoaded(), MRPT_END, MRPT_START, and THROW_EXCEPTION.
Copy operator (if the image is externally stored, the writen image will be such as well).
Definition at line 105 of file CImage.cpp.
References ASSERTMSG_, img, m_externalFile, m_imgIsExternalStorage, m_imgIsReadOnly, MRPT_END, MRPT_START, and releaseIpl().
|
inherited |
Draws a rectangle (an empty rectangle, without filling)
x0 | The top-left x coordinate |
y0 | The top-left y coordinate |
x1 | The right-bottom x coordinate |
y1 | The right-bottom y coordinate |
color | The color of the line |
width | The desired width of the line. |
Definition at line 170 of file CCanvas.cpp.
References mrpt::img::CCanvas::line().
Referenced by mrpt::vision::addFeaturesToImage().
void CImage::rectifyImage | ( | CImage & | out_img, |
const mrpt::img::TCamera & | cameraParams | ||
) | const |
Rectify (un-distort) the image according to some camera parameters, and returns an output un-distorted image.
out_img | The output rectified image |
cameraParams | The input camera params (containing the intrinsic and distortion parameters of the camera) |
Definition at line 2082 of file CImage.cpp.
References ASSERT_, mrpt::img::TCamera::dist, mrpt::img::TCamera::intrinsicParams, loadFromIplImage(), and makeSureImageIsLoaded().
Referenced by mrpt::vision::checkerBoardCameraCalibration().
void CImage::rectifyImageInPlace | ( | const mrpt::img::TCamera & | cameraParams | ) |
Rectify (un-distort) the image according to a certain camera matrix and vector of distortion coefficients, replacing "this" with the rectified image.
cameraParams | The input camera params (containing the intrinsic and distortion parameters of the camera) |
Definition at line 2050 of file CImage.cpp.
References ASSERT_, mrpt::img::TCamera::dist, mrpt::img::TCamera::intrinsicParams, makeSureImageIsLoaded(), and releaseIpl().
Referenced by mrpt::hwdrivers::CRovio::captureImageAsync().
Rectify an image (undistorts and rectification) from a stereo pair according to a pair of precomputed rectification maps.
mapX,mapY | [IN] The pre-computed maps of the rectification (should be computed beforehand) |
Definition at line 2018 of file CImage.cpp.
References ASSERT_, makeSureImageIsLoaded(), releaseIpl(), and THROW_EXCEPTION.
|
protectednoexcept |
Release the internal IPL image, if not nullptr or read-only.
Definition at line 1907 of file CImage.cpp.
Referenced by changeSize(), colorImageInPlace(), copyFastFrom(), equalizeHistInPlace(), filterGaussianInPlace(), filterMedianInPlace(), loadFromFile(), loadFromIplImage(), operator=(), rectifyImageInPlace(), rotateImage(), scaleImage(), serializeFrom(), setFromIplImage(), setFromIplImageReadOnly(), unload(), and ~CImage().
|
inline |
Changes the size of the image, erasing previous contents (does NOT scale its current content, for that, see scaleImage).
Definition at line 261 of file img/CImage.h.
References changeSize().
Referenced by mrpt::slam::CMetricMapBuilderRBPF::drawCurrentEstimationToImage(), extract_patch(), mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation(), loadFromMemoryBuffer(), loadTGA(), mrpt::vision::normalizeImage(), mrpt::gui::CDisplayWindow::plot(), and mrpt::vision::CStereoRectifyMap::rectify().
void CImage::rotateImage | ( | double | angle_radians, |
unsigned int | center_x, | ||
unsigned int | center_y, | ||
double | scale = 1.0 |
||
) |
Rotates the image by the given angle around the given center point, with an optional scale factor.
Definition at line 2280 of file CImage.cpp.
References ASSERT_, makeSureImageIsLoaded(), and releaseIpl().
bool CImage::saveToFile | ( | const std::string & | fileName, |
int | jpeg_quality = 95 |
||
) | const |
Save the image to a file, whose format is determined from the extension (internally uses OpenCV).
fileName | The file to write to. |
The supported formats are:
jpeg_quality | Only for JPEG files, the quality of the compression in the range [0-100]. Larger is better quality but slower. |
Definition at line 296 of file CImage.cpp.
References ASSERT_, makeSureImageIsLoaded(), MRPT_END, MRPT_START, and THROW_EXCEPTION.
Referenced by mrpt::slam::CGridMapAligner::AlignPDF_correlation(), mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), cvFindChessboardCorners3(), mrpt::vision::CFeatureExtraction::extractFeaturesSIFT(), mrpt::hmtslam::CHMTSLAM::generateLogFiles(), mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation(), mrpt::vision::CFeatureExtraction::internal_computeSiftDescriptors(), mrpt::vision::CFeatureExtraction::internal_computeSpinImageDescriptors(), and mrpt::maps::CRandomFieldGridMap2D::saveMetricMapRepresentationToFile().
void CImage::saveToStreamAsJPEG | ( | mrpt::io::CStream & | out, |
const int | jpeg_quality = 95 |
||
) | const |
Save image to binary stream as a JPEG (.jpg) compressed format.
std::exception | On number of rows or cols equal to zero or other errors. |
Definition at line 348 of file CImage_JPEG_streams.cpp.
References ASSERT_, jpeg_compress_struct::image_height, jpeg_compress_struct::image_width, img, jpeg_compress_struct::in_color_space, jpeg_compress_struct::input_components, JCS_GRAYSCALE, JCS_RGB, jpeg_create_compress, jpeg_stdio_dest(), makeSureImageIsLoaded(), MRPT_END, MRPT_START, THROW_EXCEPTION, and TRUE.
Referenced by serializeTo().
|
inline |
Returns a new image scaled up to double its original size.
std::exception | On odd size |
Definition at line 377 of file img/CImage.h.
References mrpt::img::UNINITIALIZED_IMAGE.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 1170 of file CImage.cpp.
References getSize(), scaleImage(), mrpt::img::TPixelCoord::x, and mrpt::img::TPixelCoord::y.
|
inline |
Returns a new image scaled down to half its original size.
std::exception | On odd size |
Definition at line 348 of file img/CImage.h.
References mrpt::img::UNINITIALIZED_IMAGE.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 1070 of file CImage.cpp.
References ASSERT_, image_SSE2_scale_half_1c8u(), image_SSSE3_scale_half_3c8u(), mrpt::img::IMG_INTERP_NN, makeSureImageIsLoaded(), mrpt::system::os::memcpy(), and setFromIplImage().
|
inline |
Returns a new image scaled down to half its original size (averaging between every two rows)
std::exception | On odd size |
Definition at line 363 of file img/CImage.h.
References mrpt::img::UNINITIALIZED_IMAGE.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 1127 of file CImage.cpp.
References ASSERT_, image_SSE2_scale_half_smooth_1c8u(), mrpt::img::IMG_INTERP_LINEAR, makeSureImageIsLoaded(), mrpt::system::os::memcpy(), and setFromIplImage().
void CImage::scaleImage | ( | CImage & | out_img, |
unsigned int | width, | ||
unsigned int | height, | ||
TInterpolationMethod | interp = IMG_INTERP_CUBIC |
||
) | const |
Scales this image to a new size, interpolating as needed, saving the new image in a different output object.
Definition at line 2247 of file CImage.cpp.
References ASSERT_, makeSureImageIsLoaded(), and setFromIplImage().
void CImage::scaleImage | ( | unsigned int | width, |
unsigned int | height, | ||
TInterpolationMethod | interp = IMG_INTERP_CUBIC |
||
) |
Scales this image to a new size, interpolating as needed.
Definition at line 2217 of file CImage.cpp.
References ASSERT_, makeSureImageIsLoaded(), and releaseIpl().
Referenced by mrpt::hwdrivers::CCameraSensor::getNextFrame(), and scaleDouble().
|
virtualinherited |
Select the current font used when drawing text.
fontName | The name of the font |
Valid font names:
18x18ja (Asian characters for UTF-8 strings - Only available if MRPT is built with MRPT_HAS_ASIAN_FONTS = true)
Definition at line 229 of file CCanvas.cpp.
References init_fonts_list(), list_registered_fonts, mrpt::img::CCanvas::m_selectedFont, and mrpt::img::CCanvas::m_selectedFontBitmaps.
Referenced by drawChessboardCorners(), mrpt::img::CEnhancedMetaFile::selectVectorTextFont(), and mrpt::img::CCanvas::textOut().
|
overrideprotectedvirtual |
Pure virtual method for reading (deserializing) from an abstract archive.
Users don't call this method directly. Instead, use stream >> object;
.
in | The input binary stream where the object data must read from. |
version | The version of the object stored in the stream: use this version number in your code to know how to read the incoming data. |
std::exception | On any I/O error |
Implements mrpt::serialization::CSerializable.
Definition at line 627 of file CImage.cpp.
References ASSERT_, mrpt::io::CMemoryStream::changeSize(), changeSize(), mrpt::io::zip::decompress(), mrpt::io::CMemoryStream::getRawBufferData(), img, loadFromStreamAsJPEG(), m_externalFile, m_imgIsExternalStorage, MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION, MRPT_TODO, releaseIpl(), mrpt::io::CMemoryStream::Seek(), and THROW_EXCEPTION.
|
overrideprotectedvirtual |
Must return the current versioning number of the object.
Start in zero for new classes, and increments each time there is a change in the stored format.
Implements mrpt::serialization::CSerializable.
Definition at line 504 of file CImage.cpp.
|
overrideprotectedvirtual |
Pure virtual method for writing (serializing) to an abstract archive.
Users don't call this method directly. Instead, use stream << object;
.
std::exception | On any I/O error |
Implements mrpt::serialization::CSerializable.
Definition at line 512 of file CImage.cpp.
References ASSERT_, mrpt::io::zip::compress(), DISABLE_JPEG_COMPRESSION, DISABLE_ZIP_COMPRESSION, mrpt::io::CMemoryStream::getRawBufferData(), mrpt::io::CMemoryStream::getTotalBytesCount(), img, isColor(), m_externalFile, m_imgIsExternalStorage, saveToStreamAsJPEG(), SERIALIZATION_JPEG_QUALITY, and mrpt::serialization::CArchive::WriteBuffer().
void CImage::setChannelsOrder_BGR | ( | ) |
Marks the channel ordering in a color image as "BGR" (this doesn't actually modify the image data, just the format description)
Definition at line 2742 of file CImage.cpp.
References ASSERT_, makeSureImageIsLoaded(), mrpt::system::os::strcpy(), and THROW_EXCEPTION.
void CImage::setChannelsOrder_RGB | ( | ) |
Marks the channel ordering in a color image as "RGB" (this doesn't actually modify the image data, just the format description)
Marks the channel ordering in a color image (this doesn't actually modify the image data, just the format description)
Definition at line 2731 of file CImage.cpp.
References ASSERT_, makeSureImageIsLoaded(), mrpt::system::os::strcpy(), and THROW_EXCEPTION.
Referenced by setFromRGBMatrices().
|
noexcept |
By using this method the image is marked as referenced to an external file, which will be loaded only under demand.
A CImage with external storage does not consume memory until some method trying to access the image is invoked (e.g. getWidth(), isColor(),...) At any moment, the image can be unloaded from memory again by invoking unload. An image becomes of type "external storage" only through calling setExternalStorage. This property remains after serializing the object. File names can be absolute, or relative to the CImage::getImagesPathBase() directory. Filenames staring with "X:\" or "/" are considered absolute paths. By calling this method the current contents of the image are NOT saved to that file, because this method can be also called to let the object know where to load the image in case its contents are required. Thus, for saving images in this format (not when loading) the proper order of commands should be:
Definition at line 1887 of file CImage.cpp.
Referenced by mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation().
Sets the internal IplImage pointer to that of another given image, WITHOUT making a copy, and from now on the image cannot be modified in this object (it will be neither freed, so the memory responsibility will still be of the original image object).
When assigning an IPLImage to this object with this method, the IPLImage will NOT be released/freed at this object destructor.
Definition at line 880 of file img/CImage.h.
References setFromIplImageReadOnly().
Referenced by CImage(), mrpt::detectors::CObjectDetection::detectObjects(), and mrpt::vision::openCV_cross_correlation().
Reads the image from a OpenCV IplImage object (WITHOUT making a copy).
This object will own the memory of the passed object and free the IplImage upon destruction, so the caller CAN'T free the original object. This method provides a fast method to grab images from a camera without making a copy of every frame.
Definition at line 363 of file CImage.cpp.
References m_imgIsExternalStorage, m_imgIsReadOnly, MRPT_END, MRPT_START, releaseIpl(), and THROW_EXCEPTION.
Referenced by colorImage(), cross_correlation(), mrpt::hwdrivers::CImageGrabber_FlyCapture2::getObservation(), grayscale(), grayscaleInPlace(), mrpt::vision::CStereoRectifyMap::rectify(), scaleHalf(), scaleHalfSmooth(), scaleImage(), and mrpt::vision::CUndistortMap::undistort().
Reads the image from a OpenCV IplImage object (WITHOUT making a copy) and from now on the image cannot be modified, just read.
When assigning an IPLImage to this object with this method, the IPLImage will NOT be released/freed at this object destructor. This method provides a fast method to grab images from a camera without making a copy of every frame.
Definition at line 340 of file CImage.cpp.
References ASSERT_, ASSERTMSG_, m_imgIsExternalStorage, m_imgIsReadOnly, MRPT_END, MRPT_START, releaseIpl(), and THROW_EXCEPTION.
Referenced by mrpt::hwdrivers::CImageGrabber_OpenCV::getObservation(), joinImagesHorz(), mrpt::vision::openCV_cross_correlation(), and setFromImageReadOnly().
|
inline |
Set the image from a matrix, interpreted as grayscale intensity values, in the range [0,1] (normalized=true) or [0,255] (normalized=false) Matrix indexes are assumed to be in this order: M(row,column)
Definition at line 891 of file img/CImage.h.
References changeSize(), get_unsafe(), MRPT_END, and MRPT_START.
Referenced by CImage(), mrpt::maps::CRandomFieldGridMap2D::getAsBitmapFile(), and mrpt::vision::normalizeImage().
|
inline |
Set the image from RGB matrices, given the pixels in the range [0,1] (normalized=true) or [0,255] (normalized=false) Matrix indexes are assumed to be in this order: M(row,column)
Definition at line 927 of file img/CImage.h.
References ASSERT_, changeSize(), get_unsafe(), makeSureImageIsLoaded(), MRPT_END, MRPT_START, and setChannelsOrder_RGB().
|
static |
Definition at line 54 of file CImage.cpp.
References IMAGES_PATH_BASE().
Referenced by mrpt::graphslam::CGraphSlamEngine< mrpt::graphs::CNetworkOfPoses2DInf >::initClass(), mrpt::gui::CPanelCameraSelection::writeConfigFromVideoSourcePanel(), and mrpt::graphslam::CGraphSlamEngine< mrpt::graphs::CNetworkOfPoses2DInf >::~CGraphSlamEngine().
void CImage::setOriginTopLeft | ( | bool | val | ) |
Changes the property of the image stating if the top-left corner (vs.
bottom-left) is the coordinate reference
Definition at line 1231 of file CImage.cpp.
References ASSERT_, makeSureImageIsLoaded(), and val.
|
overridevirtual |
Changes the value of the pixel (x,y).
Pixel coordinates starts at the left-top corner of the image, and start in (0,0). The meaning of the parameter "color" depends on the implementation: it will usually be a 24bit RGB value (0x00RRGGBB), but it can also be just a 8bit gray level. This method must support (x,y) values OUT of the actual image size without neither raising exceptions, nor leading to memory access errors.
Implements mrpt::img::CCanvas.
Definition at line 1243 of file CImage.cpp.
References ASSERT_, makeSureImageIsLoaded(), MRPT_END, MRPT_START, and THROW_EXCEPTION.
Very efficient swap of two images (just swap the internal pointers)
Definition at line 133 of file CImage.cpp.
References img, m_externalFile, m_imgIsExternalStorage, and m_imgIsReadOnly.
Referenced by mrpt::vision::CFeatureExtraction::extractFeaturesSIFT(), and mrpt::obs::CObservation3DRangeScan::swap().
void CImage::swapRB | ( | ) |
Swaps red and blue channels.
Definition at line 2005 of file CImage.cpp.
References ASSERT_, and makeSureImageIsLoaded().
Referenced by loadFromXPM().
|
virtualinherited |
Renders 2D text using bitmap fonts.
x0 | The x coordinates |
y0 | The y coordinates |
str | The string to put. If using UNICODE characters, use UTF-8 encoding. |
color | The text color |
Reimplemented in mrpt::img::CEnhancedMetaFile.
Definition at line 369 of file CCanvas.cpp.
References mrpt::system::decodeUTF8(), isOriginTopLeft(), mrpt::img::CCanvas::m_selectedFontBitmaps, MRPT_END, MRPT_START, mrpt::img::CCanvas::selectTextFont(), and mrpt::img::CCanvas::setPixel().
Referenced by drawChessboardCorners(), mrpt::img::CCanvas::drawFeatures(), mrpt::gui::CDisplayWindow::plot(), and mrpt::gui::CDisplayWindow::showImageAndPoints().
|
inherited |
Draws a triangle.
x0 | The triangle center x coordinate |
y0 | The triangle center y coordinate |
size | The size of the triangle |
color | The color of the line |
inferior | The position of the triangle |
width | The desired width of the line. |
Definition at line 190 of file CCanvas.cpp.
References mrpt::img::CCanvas::line(), and mrpt::round().
|
noexcept |
For external storage image objects only, this method unloads the image from memory (or does nothing if already unloaded).
It does not need to be called explicitly, unless the user wants to save memory for images that will not be used often. If called for an image without the flag "external storage", it is simply ignored.
Definition at line 1897 of file CImage.cpp.
References m_imgIsExternalStorage, and releaseIpl().
Referenced by mrpt::obs::CObservation3DRangeScan::unload().
Update a part of this image with the "patch" given as argument.
The "patch" will be "pasted" at the (col,row) coordinates of this image.
std::exception | if patch pasted on the pixel (_row, _column) jut out of the image. |
Definition at line 1332 of file CImage.cpp.
References ASSERT_, getHeight(), getWidth(), img, mrpt::system::os::memcpy(), and THROW_EXCEPTION.
|
inlinevirtualinherited |
Introduces a pure virtual method responsible for writing to a mxArray
Matlab object, typically a MATLAB struct
whose contents are documented in each derived class.
mxArray
(caller is responsible of memory freeing) or nullptr is class does not support conversion to MATLAB. Definition at line 70 of file CSerializable.h.
|
staticprotected |
Definition at line 132 of file img/CImage.h.
|
staticconstexpr |
Definition at line 132 of file img/CImage.h.
|
static |
By default, when storing images through the CSerializable interface, RGB images are JPEG-compressed to save space.
If for some reason you prefer storing RAW image data, disable this feature by setting this flag to true. (Default = false)
Definition at line 240 of file img/CImage.h.
Referenced by serializeTo().
|
static |
By default, when storing images through the CSerializable interface, grayscale images will be ZIP compressed if they are larger than 16Kb: this flag can be turn on to disable ZIP compression and gain speed versus occupied space.
(Default = false)
Definition at line 233 of file img/CImage.h.
Referenced by serializeTo().
|
protected |
The internal IplImage pointer to the actual image content.
Definition at line 1090 of file img/CImage.h.
Referenced by changeSize(), copyFastFrom(), extract_patch(), getAs(), loadFromMemoryBuffer(), loadFromStreamAsJPEG(), loadTGA(), operator=(), saveToStreamAsJPEG(), serializeFrom(), serializeTo(), swap(), and update_patch().
|
mutableprotected |
The file name of a external storage image.
Definition at line 1100 of file img/CImage.h.
Referenced by copyFastFrom(), getExternalStorageFile(), getExternalStorageFileAbsolutePath(), makeSureImageIsLoaded(), operator=(), serializeFrom(), serializeTo(), and swap().
|
mutableprotected |
Set to true only when using setExternalStorage.
Definition at line 1098 of file img/CImage.h.
Referenced by copyFastFrom(), isExternallyStored(), loadFromMemoryBuffer(), makeSureImageIsLoaded(), operator=(), serializeFrom(), serializeTo(), setFromIplImage(), setFromIplImageReadOnly(), swap(), and unload().
|
protected |
Set to true only when using setFromIplImageReadOnly.
Definition at line 1094 of file img/CImage.h.
Referenced by copyFastFrom(), loadFromMemoryBuffer(), operator=(), setFromIplImage(), setFromIplImageReadOnly(), and swap().
|
protectedinherited |
The selected font name.
Definition at line 46 of file CCanvas.h.
Referenced by mrpt::img::CCanvas::selectTextFont().
|
protectedinherited |
Direct access to character bitmaps.
Definition at line 49 of file CCanvas.h.
Referenced by mrpt::img::CCanvas::selectTextFont(), and mrpt::img::CCanvas::textOut().
|
staticprotected |
Definition at line 132 of file img/CImage.h.
|
static |
Unless DISABLE_JPEG_COMPRESSION=true, this sets the JPEG quality (range 1-100) of serialized RGB images.
(Default = 95)
Definition at line 245 of file img/CImage.h.
Referenced by serializeTo().
Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST |