MRPT
1.9.9
|
A class for storing images as grayscale or RGB bitmaps.
I/O is supported as:
Importing TGA images. See CImage::loadTGA()
How to create color/grayscale images:
Additional notes:
cv::Mat
format is used internally for compatibility with all OpenCV functions. Use CImage::asCvMat() to retrieve it. Example: cv::Mat
use CImage::CImage(cv::Mat,copy_type_t).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 Sse_optimizations, falling back to default OpenCV methods where unavailable.
For computer vision functions that use CImage as its image data type, see mrpt::vision.
Definition at line 147 of file img/CImage.h.
#include <mrpt/img/CImage.h>
Classes | |
struct | Impl |
Public Types | |
enum | TPenStyle { psSolid = 0, psDash, psDot, psDashDot, psDashDotDot } |
Definition of pen styles. More... | |
Public Member Functions | |
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, float rotation, float scale) |
Draws an image as a bitmap at a given position, with some custom scale and rotation changes. More... | |
void | drawMark (int x0, int y0, const mrpt::img::TColor color, char type, int size=5, unsigned int width=1) |
Draw a mark. More... | |
void | ellipseGaussian (const mrpt::math::CMatrixFixed< double, 2, 2 > &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, const bool showScale=false, const char marker='+') |
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 to empty image. More... | |
CImage (unsigned int width, unsigned int height, TImageChannels nChannels=CH_RGB) | |
Constructor for a given image size and type. More... | |
CImage (const CImage &other_img, ctor_CImage_ref_or_gray) | |
Fast constructor of a grayscale version of another image, making a shallow copy from the original image if it already was grayscale, or otherwise creating a new grayscale image and converting the original image into it. More... | |
CImage (const cv::Mat &img, copy_type_t copy_type) | |
Constructor from a cv::Mat image, making or not a deep copy of the data. More... | |
CImage (const CImage &img, copy_type_t copy_type) | |
Constructor from another CImage, making or not a deep copy of the data. More... | |
Manipulate the image contents or size, various computer-vision | |
methods (image filters, undistortion, etc.) | |
void | clear () |
Resets the image to the state after a default ctor. More... | |
void | resize (std::size_t width, std::size_t height, TImageChannels nChannels, PixelDepth depth=PixelDepth::D8U) |
Changes the size of the image, erasing previous contents (does NOT scale its current content, for that, see scaleImage). More... | |
PixelDepth | getPixelDepth () const |
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, or operating in-place if out_img==this . More... | |
void | rotateImage (CImage &out_img, double ang, unsigned int cx, unsigned int cy, double scale=1.0) const |
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 | 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 | drawImage (int x, int y, const mrpt::img::CImage &img) override |
Draws an image as a bitmap at a given position. More... | |
void | equalizeHist (CImage &out_img) const |
Equalize the image histogram, saving the new image in the given output object. More... | |
CImage | scaleHalf (TInterpolationMethod interp) const |
Returns a new image scaled down to half its original size. More... | |
bool | scaleHalf (CImage &out_image, TInterpolationMethod interp) 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 (TInterpolationMethod interp) const |
Returns a new image scaled up to double its original size. More... | |
void | scaleDouble (CImage &out_image, TInterpolationMethod interp) const |
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_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 () |
Flips the image vertically. More... | |
void | flipHorizontal () |
Flips the image horizontally. More... | |
void | swapRB () |
Swaps red and blue channels. More... | |
void | undistort (CImage &out_img, const mrpt::img::TCamera &cameraParams) const |
Undistort the image according to some camera parameters, and returns an output undistorted 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 | filterGaussian (CImage &out_img, int W=3, int H=3, double sigma=1.0) 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 | |
void | setFromImageReadOnly (const CImage &o) |
CImage | makeShallowCopy () const |
Returns a shallow copy of the original image. More... | |
CImage | makeDeepCopy () const |
Returns a deep copy of this image. More... | |
void | copyFromForceLoad (const CImage &o) |
Copies from another image (shallow copy), and, if it 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. More... | |
void | loadFromIplImage (const IplImage *iplImage, copy_type_t c=DEEP_COPY) |
Assigns from an image in IplImage format. More... | |
void | setFromIplImageReadOnly (IplImage *iplImage) |
void | swap (CImage &o) |
Efficiently swap of two images. More... | |
Access to image contents (OpenCV data structure, and raw pixels) | |
void | asCvMat (cv::Mat &out_img, copy_type_t copy_type) const |
Makes a shallow or deep copy of this image into the provided cv::Mat. More... | |
template<typename CV_MAT > | |
CV_MAT | asCvMat (copy_type_t copy_type) const |
cv::Mat & | asCvMatRef () |
Get a reference to the internal cv::Mat, which can be resized, etc. More... | |
const cv::Mat & | asCvMatRef () const |
uint8_t * | get_unsafe (unsigned int col, unsigned int row, uint8_t channel=0) const |
Access to pixels without checking boundaries - Use normally the () operator better, which checks the coordinates. More... | |
template<typename T > | |
const T & | at (unsigned int col, unsigned int row, unsigned int channel=0) const |
Access to pixels without checking boundaries, and doing a reinterpret_cast<> of the data as the given type. More... | |
template<typename T > | |
T & | at (unsigned int col, unsigned int row, unsigned int channel=0) |
template<typename T > | |
const T * | ptr (unsigned int col, unsigned int row, unsigned int channel=0) const |
Returns a pointer to a given pixel, without checking for boundaries. More... | |
template<typename T > | |
T * | ptr (unsigned int col, unsigned int row, unsigned int channel=0) |
template<typename T > | |
const T * | ptrLine (unsigned int row) const |
Returns a pointer to the first pixel of the given line. More... | |
template<typename T > | |
T * | ptrLine (unsigned int row) |
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... | |
std::string | getChannelsOrder () const |
As of mrpt 2.0.0, this returns either "GRAY" or "BGR". 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 (as of MRPT v2.0.0, it's fixed) 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, bool normalize_01=true) 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 (mrpt::math::CMatrixFloat &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 a shallow copy of itself if it is already a grayscale image. More... | |
bool | grayscale (CImage &ret) const |
CImage | colorImage () const |
Returns a color (RGB) version of the grayscale image, or a shallow copy of itself if it is already a color image. More... | |
void | colorImage (CImage &ret) const |
RTTI classes and functions for polymorphic hierarchies | |
mrpt::rtti::CObject::Ptr | duplicateGetSmartPtr () const |
Makes a deep copy of the object and returns a smart pointer to it. More... | |
Static Public Member Functions | |
Behavior-changing global flags | |
static void | DISABLE_ZIP_COMPRESSION (bool val) |
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_ZIP_COMPRESSION () |
static void | DISABLE_JPEG_COMPRESSION (bool val) |
By default, when storing images through the CSerializable interface, RGB images are JPEG-compressed to save space. More... | |
static bool | DISABLE_JPEG_COMPRESSION () |
static void | SERIALIZATION_JPEG_QUALITY (int q) |
Unless DISABLE_JPEG_COMPRESSION=true, this sets the JPEG quality (range 1-100) of serialized RGB images. More... | |
static int | SERIALIZATION_JPEG_QUALITY () |
Protected Member Functions | |
void | makeSureImageIsLoaded () const |
Checks if the image is of type "external storage", and if so and not loaded yet, load it. More... | |
uint8_t * | internal_get (int col, int row, uint8_t channel=0) const |
void | internal_fromIPL (const IplImage *iplImage, copy_type_t c) |
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... | |
CSerializable virtual methods | |
virtual void | serializeTo (CSchemeArchiveBase &out) const |
Virtual method for writing (serializing) to an abstract schema based archive. More... | |
virtual void | serializeFrom (CSchemeArchiveBase &in) |
Virtual method for reading (deserializing) from an abstract schema based archive. More... | |
Protected Attributes | |
std::string | m_selectedFont {"9x15"} |
The selected font name. More... | |
const uint32_t * | m_selectedFontBitmaps {nullptr} |
Direct access to character bitmaps. More... | |
Data members | |
mrpt::pimpl< Impl > | m_impl |
bool | m_imgIsExternalStorage {false} |
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 std::shared_ptr< CObject > | CreateObject () |
template<typename... Args> | |
static Ptr | Create (Args &&... args) |
template<typename Alloc , typename... Args> | |
static Ptr | CreateAlloc (const Alloc &alloc, 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... | |
template<typename MAT > | |
void | setFromMatrix (const MAT &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 MAT > | |
void | setFromRGBMatrices (const MAT &r, const MAT &g, const MAT &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 149 of file img/CImage.h.
using mrpt::img::CImage::ConstUniquePtr = std::unique_ptr<const CImage > |
Definition at line 149 of file img/CImage.h.
using mrpt::img::CImage::Ptr = std::shared_ptr< CImage > |
A type for the associated smart pointer
Definition at line 149 of file img/CImage.h.
using mrpt::img::CImage::UniquePtr = std::unique_ptr< CImage > |
Definition at line 149 of file img/CImage.h.
|
inherited |
CImage::CImage | ( | ) |
Default constructor: initialize to empty image.
It's an error trying to access the image in such a state (except reading the image width/height, which are both zero). Either call resize(), assign from another image, load from disk, deserialize from an archive, etc. to properly initialize the image.
Definition at line 165 of file CImage.cpp.
Referenced by CImage(), and clear().
CImage::CImage | ( | unsigned int | width, |
unsigned int | height, | ||
TImageChannels | nChannels = CH_RGB |
||
) |
Constructor for a given image size and type.
Examples:
Definition at line 168 of file CImage.cpp.
References MRPT_END, MRPT_START, and resize().
|
inline |
Fast constructor of a grayscale version of another image, making a shallow copy from the original image if it already was grayscale, or otherwise creating a new grayscale image and converting the original image into it.
Example of usage:
Definition at line 189 of file img/CImage.h.
References CImage(), grayscale(), and isColor().
CImage::CImage | ( | const cv::Mat & | img, |
copy_type_t | copy_type | ||
) |
Constructor from a cv::Mat image, making or not a deep copy of the data.
Definition at line 190 of file CImage.cpp.
References mrpt::img::DEEP_COPY, m_impl, MRPT_END, and MRPT_START.
CImage::CImage | ( | const CImage & | img, |
copy_type_t | copy_type | ||
) |
Constructor from another CImage, making or not a deep copy of the data.
Definition at line 202 of file CImage.cpp.
|
staticprotected |
void CImage::asCvMat | ( | cv::Mat & | out_img, |
copy_type_t | copy_type | ||
) | const |
Makes a shallow or deep copy of this image into the provided cv::Mat.
Definition at line 223 of file CImage.cpp.
References mrpt::img::DEEP_COPY, and m_impl.
Referenced by asCvMat(), mrpt::vision::checkerBoardCameraCalibration(), do_special_dilation(), mrpt::vision::CFeatureExtraction::extractFeaturesAKAZE(), mrpt::vision::CFeatureExtraction::extractFeaturesFAST(), mrpt::vision::CFeatureLines::extractLines(), mrpt::vision::openCV_cross_correlation(), mrpt::vision::CStereoRectifyMap::rectify(), and mrpt::vision::CUndistortMap::undistort().
|
inline |
Definition at line 537 of file img/CImage.h.
References asCvMat().
cv::Mat & CImage::asCvMatRef | ( | ) |
Get a reference to the internal cv::Mat, which can be resized, etc.
and changes will be reflected in this CImage object.
Definition at line 233 of file CImage.cpp.
References m_impl, makeSureImageIsLoaded(), and THROW_EXCEPTION.
Referenced by mrpt::vision::checkerBoardCameraCalibration(), mrpt::detectors::CCascadeClassifierDetection::detectObjects_Impl(), 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::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_computeSurfDescriptors(), mrpt::vision::CStereoRectifyMap::rectify(), and mrpt::vision::CFeatureTracker_KL::trackFeatures_impl_templ().
const cv::Mat & CImage::asCvMatRef | ( | ) | const |
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 243 of file CImage.cpp.
References m_impl, makeSureImageIsLoaded(), and THROW_EXCEPTION.
|
inline |
Access to pixels without checking boundaries, and doing a reinterpret_cast<> of the data as the given type.
Definition at line 564 of file img/CImage.h.
References internal_get().
Referenced by mrpt::vision::computeSAD(), mrpt::vision::CFeatureExtraction::internal_computeSpinImageDescriptors(), and mrpt::vision::matchFeatures().
|
inline |
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 571 of file img/CImage.h.
References internal_get().
void CImage::clear | ( | ) |
Resets the image to the state after a default ctor.
Accessing the image after will throw an exception, unless it is formerly initialized somehow: loading an image from disk, calling rezize(), etc.
Definition at line 1505 of file CImage.cpp.
References CImage().
Referenced by find_chessboard_corners_multiple(), internal_fromIPL(), rectifyImageInPlace(), and serializeFrom().
|
overridevirtual |
Returns a deep copy (clone) of the object, indepently of its class.
Implements mrpt::rtti::CObject.
CImage CImage::colorImage | ( | ) | const |
Returns a color (RGB) version of the grayscale image, or a shallow copy of itself if it is already a color image.
Definition at line 1805 of file CImage.cpp.
Referenced by mrpt::vision::checkerBoardCameraCalibration(), mrpt::vision::checkerBoardStereoCalibration(), mrpt::gui::MRPTImage2wxImage(), mrpt::gui::CDisplayWindow::showImageAndPoints(), and mrpt::gui::CDisplayWindow::showTiledImageAndPoints().
Definition at line 1812 of file CImage.cpp.
References mrpt::img::CH_RGB, getHeight(), getWidth(), isColor(), m_impl, and resize().
Moves an image from another object, erasing the origin image in the process.
Definition at line 503 of file img/CImage.h.
Copies from another image (shallow copy), and, if it 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 184 of file CImage.cpp.
References forceLoad().
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 1197 of file CImage.cpp.
References getHeight(), getWidth(), makeSureImageIsLoaded(), and THROW_EXCEPTION.
|
inlinestatic |
Definition at line 149 of file img/CImage.h.
Referenced by mrpt::opengl::COpenGLViewport::internal_enableImageView().
|
inlinestatic |
Definition at line 149 of file img/CImage.h.
|
static |
|
inlinestatic |
Definition at line 149 of file img/CImage.h.
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 1375 of file CImage.cpp.
References ASSERT_, mrpt::math::dft2_complex(), getAsMatrix(), getHeight(), getWidth(), mrpt::math::idft2_complex(), makeSureImageIsLoaded(), MRPT_END, MRPT_START, mrpt::math::CMatrixDynamic< T >::setSize(), and mrpt::square().
Referenced by mrpt::slam::CGridMapAligner::AlignPDF_correlation().
|
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 = true)
Definition at line 59 of file CImage.cpp.
References DISABLE_JPEG_COMPRESSION_value, and val.
|
static |
Definition at line 63 of file CImage.cpp.
References DISABLE_JPEG_COMPRESSION_value.
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 54 of file CImage.cpp.
References DISABLE_ZIP_COMPRESSION_value, and val.
|
static |
Definition at line 58 of file CImage.cpp.
References DISABLE_ZIP_COMPRESSION_value.
Referenced by serializeTo().
bool CImage::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.
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 1740 of file CImage.cpp.
References mrpt::img::TColor::blue(), mrpt::format(), m_impl, 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 (this is IGNORED in this virtual class) |
Reimplemented from mrpt::img::CCanvas.
Definition at line 1148 of file CImage.cpp.
References m_impl, and makeSureImageIsLoaded().
|
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 280 of file CCanvas.h.
References mrpt::img::CCanvas::drawCircle(), mrpt::img::CCanvas::drawMark(), mrpt::format(), mrpt::img::TColor::red(), mrpt::round(), and mrpt::img::CCanvas::textOut().
Referenced by mrpt::gui::CDisplayWindow::showImageAndPoints().
|
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 259 of file CCanvas.h.
References mrpt::img::CCanvas::drawMark(), and mrpt::round().
|
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 289 of file CCanvas.cpp.
References MRPT_END, MRPT_START, MRPT_UNUSED_PARAM, and THROW_EXCEPTION.
|
overridevirtual |
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 from mrpt::img::CCanvas.
Definition at line 1160 of file CImage.cpp.
References m_impl, and makeSureImageIsLoaded().
Referenced by mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), and mrpt::slam::CMetricMapBuilderRBPF::drawCurrentEstimationToImage().
|
inherited |
Draw a mark.
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', '+', ':'(like '+' but clear at the center dot), or 's' (square) |
width | The desired width of the cross (this is IGNORED yet) |
Definition at line 305 of file CCanvas.cpp.
References THROW_EXCEPTION.
Referenced by mrpt::img::CCanvas::drawFeatures(), mrpt::img::CCanvas::drawFeaturesSimple(), mrpt::gui::CDisplayWindow::plot(), and mrpt::gui::CDisplayWindow::showImageAndPoints().
|
inlineinherited |
Makes a deep copy of the object and returns a smart pointer to it.
Definition at line 200 of file CObject.h.
References mrpt::rtti::CObject::clone().
Referenced by mrpt::obs::CRawlog::addActions(), and mrpt::obs::CRawlog::addObservations().
|
inherited |
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 450 of file CCanvas.cpp.
References mrpt::math::MatrixVectorBase< T, CMatrixFixed< T, ROWS, COLS > >::array(), mrpt::math::CMatrixFixed< T, ROWS, COLS >::asEigen(), mrpt::math::MatrixBase< T, CMatrixFixed< T, ROWS, COLS > >::eig(), M_2PI, MRPT_END_WITH_CLEAN_UP, MRPT_START, mrpt::round(), mrpt::math::MatrixBase< T, CMatrixFixed< T, ROWS, COLS > >::setDiagonal(), and mrpt::math::MatrixVectorBase< T, CMatrixFixed< T, ROWS, COLS > >::transpose().
Equalize the image histogram, saving the new image in the given output object.
Definition at line 1846 of file CImage.cpp.
References getChannelCount(), m_impl, resize(), and THROW_EXCEPTION.
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 1184 of file CImage.cpp.
References m_impl, and makeSureImageIsLoaded().
Referenced by 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(), and mrpt::vision::openCV_cross_correlation().
|
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 213 of file CCanvas.cpp.
References getHeight(), and min.
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.
For inplace operation, set out_img to this.
Definition at line 1668 of file CImage.cpp.
References getChannelCount(), m_impl, makeSureImageIsLoaded(), and resize().
Filter the image with a Median filter with a window size WxW, returning the filtered image in out_img.
For inplace operation, set out_img to this.
Definition at line 1653 of file CImage.cpp.
References getChannelCount(), m_impl, makeSureImageIsLoaded(), and resize().
void CImage::flipHorizontal | ( | ) |
Flips the image horizontally.
Definition at line 1591 of file CImage.cpp.
References m_impl, and makeSureImageIsLoaded().
void CImage::flipVertical | ( | ) |
Flips the image vertically.
Definition at line 1583 of file CImage.cpp.
References m_impl, and makeSureImageIsLoaded().
|
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.
Definition at line 789 of file img/CImage.h.
References makeSureImageIsLoaded().
Referenced by copyFromForceLoad().
Access to pixels without checking boundaries - Use normally the () operator better, which checks the coordinates.
Definition at line 482 of file CImage.cpp.
References internal_get().
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 913 of file CImage.cpp.
References makeSureImageIsLoaded().
Referenced by getMaxAsFloat(), and mrpt::maps::COccupancyGridMap2D::loadFromBitmap().
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 921 of file CImage.cpp.
References isColor().
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 , |
||
bool | normalize_01 = true |
||
) | 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) |
normalize_01 | Normalize the image values such that they fall in the range [0,1] (default: true). If set to false, the matrix will hold numbers in the range [0,255]. |
Definition at line 1259 of file CImage.cpp.
References ASSERT_, mrpt::math::MatrixVectorBase< Scalar, Derived >::coeffRef(), mrpt::math::CMatrixDynamic< T >::cols(), isColor(), m_impl, makeSureImageIsLoaded(), MRPT_END, MRPT_START, mrpt::math::CMatrixDynamic< T >::rows(), and mrpt::math::CMatrixDynamic< T >::setSize().
Referenced by cross_correlation_FFT().
void CImage::getAsMatrixTiled | ( | mrpt::math::CMatrixFloat & | 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 1455 of file CImage.cpp.
References mrpt::math::CMatrixDynamic< T >::cols(), isColor(), m_impl, makeSureImageIsLoaded(), MRPT_END, MRPT_START, and mrpt::math::CMatrixDynamic< T >::rows().
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 1316 of file CImage.cpp.
References ASSERT_, mrpt::math::MatrixVectorBase< Scalar, Derived >::coeffRef(), mrpt::math::CMatrixDynamic< T >::cols(), G, isColor(), m_impl, makeSureImageIsLoaded(), MRPT_END, MRPT_START, R, mrpt::math::CMatrixDynamic< T >::rows(), and mrpt::math::CMatrixDynamic< T >::setSize().
TImageChannels CImage::getChannelCount | ( | ) | const |
Returns the number of channels, typically 1 (GRAY) or 3 (RGB)
Definition at line 898 of file CImage.cpp.
References m_impl, makeSureImageIsLoaded(), and THROW_EXCEPTION.
Referenced by equalizeHist(), filterGaussian(), filterMedian(), mrpt::vision::CFeatureExtraction::internal_computeLogPolarImageDescriptors(), mrpt::vision::CFeatureExtraction::internal_computePolarImageDescriptors(), joinImagesHorz(), mrpt::gui::MRPTImage2wxImage(), mrpt::vision::CStereoRectifyMap::rectify(), rotateImage(), scaleHalf(), scaleImage(), mrpt::vision::CUndistortMap::undistort(), and undistort().
std::string CImage::getChannelsOrder | ( | ) | const |
As of mrpt 2.0.0, this returns either "GRAY" or "BGR".
Definition at line 857 of file CImage.cpp.
References m_impl, makeSureImageIsLoaded(), and THROW_EXCEPTION.
Referenced by mrpt::maps::CColouredPointsMap::colourFromObservation(), and mrpt::gui::MRPTImage2wxImage().
|
inlinestatic |
Definition at line 149 of file img/CImage.h.
|
inlinenoexcept |
Only if isExternallyStored() returns true.
Definition at line 768 of file img/CImage.h.
References m_externalFile.
Referenced by mrpt::obs::CObservation3DRangeScan::getDescriptionAsText().
void CImage::getExternalStorageFileAbsolutePath | ( | std::string & | out_path | ) | const |
Only if isExternallyStored() returns true.
Definition at line 1561 of file CImage.cpp.
References ASSERT_, IMAGES_PATH_BASE(), and m_externalFile.
|
inline |
Only if isExternallyStored() returns true.
Definition at line 777 of file img/CImage.h.
Referenced by makeSureImageIsLoaded().
|
overridevirtual |
Returns the height of the image in pixels.
Implements mrpt::img::CCanvas.
Definition at line 878 of file CImage.cpp.
References m_imgIsExternalStorage, m_impl, and makeSureImageIsLoaded().
Referenced by mrpt::opengl::CMeshFast::adjustGridToImageAR(), mrpt::opengl::CMesh::adjustGridToImageAR(), mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), mrpt::vision::checkerBoardCameraCalibration(), mrpt::vision::checkerBoardStereoCalibration(), colorImage(), mrpt::maps::CColouredPointsMap::colourFromObservation(), mrpt::vision::computeSAD(), correlate(), cross_correlation_FFT(), 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::extractFeaturesSURF(), getMaxAsFloat(), mrpt::hwdrivers::CCameraSensor::getNextFrame(), 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::matchFeatures(), mrpt::gui::MRPTImage2wxImage(), mrpt::vision::openCV_cross_correlation(), mrpt::obs::detail::project3DPointsFromDepthImageInto(), rotateImage(), mrpt::maps::COccupancyGridMap2D::saveAsEMFTwoMapsWithCorrespondences(), scaleImage(), mrpt::gui::CDisplayWindow::showTiledImageAndPoints(), mrpt::vision::CFeatureTracker_KL::trackFeatures_impl_templ(), and mrpt::vision::CUndistortMap::undistort().
|
static |
By default, ".".
Definition at line 82 of file CImage.cpp.
References IMAGES_PATH_BASE().
Referenced by mrpt::graphslam::CGraphSlamEngine< GRAPH_T >::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 941 of file CImage.cpp.
References getAsFloat(), getHeight(), and getWidth().
PixelDepth CImage::getPixelDepth | ( | ) | const |
Definition at line 300 of file CImage.cpp.
References cvDepth2PixelDepth(), m_impl, MRPT_END, MRPT_START, and THROW_EXCEPTION.
Referenced by setPixel().
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 ptrLine(0)
Definition at line 868 of file CImage.cpp.
References m_impl, makeSureImageIsLoaded(), and THROW_EXCEPTION.
Referenced by mrpt::gui::MRPTImage2wxImage().
|
overridevirtual |
Returns information about the class of an object in runtime.
Reimplemented from mrpt::serialization::CSerializable.
|
static |
void CImage::getSize | ( | TImageSize & | s | ) | const |
Return the size of the image.
Definition at line 836 of file CImage.cpp.
References m_impl, makeSureImageIsLoaded(), and THROW_EXCEPTION.
Referenced by mrpt::vision::checkerBoardStereoCalibration(), and mrpt::vision::computeSAD().
|
inline |
Return the size of the image.
Definition at line 643 of file img/CImage.h.
Referenced by scaleDouble().
|
overridevirtual |
Returns the width of the image in pixels.
Implements mrpt::img::CCanvas.
Definition at line 847 of file CImage.cpp.
References m_imgIsExternalStorage, m_impl, and makeSureImageIsLoaded().
Referenced by mrpt::opengl::CMeshFast::adjustGridToImageAR(), mrpt::opengl::CMesh::adjustGridToImageAR(), mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), mrpt::vision::checkerBoardCameraCalibration(), mrpt::vision::checkerBoardStereoCalibration(), colorImage(), mrpt::maps::CColouredPointsMap::colourFromObservation(), mrpt::vision::computeSAD(), correlate(), cross_correlation_FFT(), 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::extractFeaturesSURF(), getMaxAsFloat(), mrpt::hwdrivers::CCameraSensor::getNextFrame(), mrpt::vision::CFeatureExtraction::internal_computeSpinImageDescriptors(), mrpt::maps::detail::pointmap_traits< CColouredPointsMap >::internal_loadFromRangeScan3D_init(), mrpt::vision::CGenericFeatureTracker::internal_trackFeatures(), mrpt::maps::COccupancyGridMap2D::loadFromBitmap(), main(), mrpt::vision::matchFeatures(), mrpt::gui::MRPTImage2wxImage(), mrpt::vision::openCV_cross_correlation(), mrpt::obs::detail::project3DPointsFromDepthImageInto(), rotateImage(), mrpt::maps::COccupancyGridMap2D::saveAsEMFTwoMapsWithCorrespondences(), scaleImage(), mrpt::gui::CDisplayWindow::showImagesAndMatchedPoints(), mrpt::gui::CDisplayWindow::showTiledImageAndPoints(), mrpt::vision::CFeatureTracker_KL::trackFeatures_impl_templ(), and mrpt::vision::CUndistortMap::undistort().
CImage CImage::grayscale | ( | ) | const |
Returns a grayscale version of the image, or a shallow copy of itself if it is already a grayscale image.
Definition at line 953 of file CImage.cpp.
Referenced by CImage(), mrpt::vision::openCV_cross_correlation(), and TEST().
bool CImage::grayscale | ( | CImage & | ret | ) | const |
Definition at line 983 of file CImage.cpp.
References m_impl, makeSureImageIsLoaded(), my_img_to_grayscale(), and THROW_EXCEPTION.
|
protected |
Definition at line 357 of file CImage.cpp.
References ASSERT_, clear(), mrpt::img::DEEP_COPY, m_impl, MRPT_END, MRPT_START, and THROW_EXCEPTION.
Referenced by loadFromIplImage(), and setFromIplImageReadOnly().
Definition at line 470 of file CImage.cpp.
References m_impl, and makeSureImageIsLoaded().
Referenced by at(), get_unsafe(), ptr(), and ptrLine().
bool CImage::isColor | ( | ) | const |
Returns true if the image is RGB, false if it is grayscale.
Definition at line 888 of file CImage.cpp.
References m_impl, makeSureImageIsLoaded(), and THROW_EXCEPTION.
Referenced by CImage(), colorImage(), mrpt::maps::CColouredPointsMap::colourFromObservation(), getAsFloat(), getAsMatrix(), getAsMatrixTiled(), getAsRGBMatrices(), mrpt::vision::CFeatureExtraction::internal_computeSpinImageDescriptors(), mrpt::maps::detail::pointmap_traits< CColouredPointsMap >::internal_loadFromRangeScan3D_init(), loadFromFile(), loadFromStreamAsJPEG(), mrpt::gui::MRPTImage2wxImage(), mrpt::vision::openCV_cross_correlation(), mrpt::obs::detail::project3DPointsFromDepthImageInto(), and serializeTo().
|
inlinenoexcept |
See setExternalStorage().
Definition at line 765 of file img/CImage.h.
References m_imgIsExternalStorage.
Referenced by mrpt::vision::checkerBoardCameraCalibration(), mrpt::vision::checkerBoardStereoCalibration(), and mrpt::obs::CObservation3DRangeScan::getDescriptionAsText().
bool CImage::isOriginTopLeft | ( | ) | const |
Returns true (as of MRPT v2.0.0, it's fixed)
Definition at line 908 of file CImage.cpp.
Referenced by 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 1831 of file CImage.cpp.
References ASSERT_, getChannelCount(), getHeight(), m_impl, and resize().
Referenced by mrpt::gui::CDisplayWindow::showImagesAndMatchedPoints().
float MRPT_DISABLE_FULL_OPTIMIZATION 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() for more details on the internal optimizations of this method, but this graph shows a general view:
Definition at line 1905 of file CImage.cpp.
References ASSERTMSG_, and m_impl.
Referenced by mrpt::vision::CFeatureExtraction::extractFeaturesFAST(), mrpt::vision::CFeatureExtraction::extractFeaturesFASTER_N(), mrpt::vision::CGenericFeatureTracker::internal_trackFeatures(), 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 1135 of file CImage.cpp.
References m_impl, and makeSureImageIsLoaded().
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 311 of file CImage.cpp.
References isColor(), m_imgIsExternalStorage, m_impl, MRPT_END, MRPT_START, MRPT_TODO, and THROW_EXCEPTION.
Referenced by mrpt::vision::checkerBoardCameraCalibration(), and makeSureImageIsLoaded().
|
inline |
Assigns from an image in IplImage format.
Definition at line 510 of file img/CImage.h.
References internal_fromIPL().
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 371 of file CImage.cpp.
References mrpt::img::CH_GRAY, mrpt::img::CH_RGB, m_imgIsExternalStorage, m_impl, 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(), and mrpt::hwdrivers::CFFMPEG_InputStream::retrieveFrame().
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 1062 of file CImage.cpp.
References mrpt::img::CH_RGB, mrpt::img::D8U, m_impl, MRPT_END, MRPT_START, red, and resize().
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 453 of file CImage_JPEG_streams.cpp.
References mrpt::img::CH_GRAY, mrpt::img::CH_RGB, isColor(), jpeg_create_decompress, jpeg_stdio_src(), JPOOL_IMAGE, m_impl, mrpt::system::os::memcpy(), MRPT_END, MRPT_START, MRPT_TODO, jpeg_decompress_struct::out_color_components, jpeg_decompress_struct::output_components, jpeg_decompress_struct::output_height, jpeg_decompress_struct::output_width, resize(), 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 484 of file CImage_loadXPM.cpp.
References ASSERTMSG_, XPMColorMapData::B, mrpt::img::CH_RGB, XPMColorMapData::G, GetRGBFromName(), MRPT_UNUSED_PARAM, ParseColor(), XPMColorMapData::R, resize(), swapRB(), THROW_EXCEPTION, and THROW_EXCEPTION_FMT.
|
static |
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.
Definition at line 2041 of file CImage.cpp.
References mrpt::img::CH_GRAY, mrpt::img::CH_RGB, m_impl, and resize().
CImage CImage::makeDeepCopy | ( | ) | const |
Returns a deep copy of this image.
If the image is externally-stored, there is no difference with a shallow copy.
Definition at line 212 of file CImage.cpp.
References m_impl, and THROW_EXCEPTION.
Referenced by mrpt::gui::MRPTImage2wxImage(), and TEST().
|
inline |
Returns a shallow copy of the original image.
Definition at line 481 of file img/CImage.h.
Referenced by mrpt::detectors::CObjectDetection::detectObjects(), mrpt::vision::openCV_cross_correlation(), and setFromImageReadOnly().
|
protected |
Checks if the image is of type "external storage", and if so and not loaded yet, load it.
CExceptionExternalImageNotFound |
Definition at line 1525 of file CImage.cpp.
References getExternalStorageFileAbsolutePath(), loadFromFile(), m_externalFile, m_imgIsExternalStorage, m_impl, THROW_EXCEPTION, and THROW_TYPED_EXCEPTION_FMT.
Referenced by asCvMatRef(), correlate(), cross_correlation_FFT(), drawCircle(), drawImage(), extract_patch(), filterGaussian(), filterMedian(), flipHorizontal(), flipVertical(), forceLoad(), getAsFloat(), getAsMatrix(), getAsMatrixTiled(), getAsRGBMatrices(), getChannelCount(), getChannelsOrder(), getHeight(), getRowStride(), getSize(), getWidth(), grayscale(), internal_get(), isColor(), line(), normalize(), operator()(), rectifyImageInPlace(), rotateImage(), saveToFile(), saveToStreamAsJPEG(), scaleHalf(), scaleImage(), setFromRGBMatrices(), setPixel(), swapRB(), undistort(), and update_patch().
void CImage::normalize | ( | ) |
Optimize the brightness range of an image without using histogram Only for one channel images.
Definition at line 1251 of file CImage.cpp.
References m_impl, makeSureImageIsLoaded(), and mrpt::math::normalize().
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 432 of file CImage.cpp.
References ASSERT_, mrpt::format(), m_impl, makeSureImageIsLoaded(), MRPT_END, MRPT_START, and THROW_EXCEPTION.
|
inline |
Returns a pointer to a given pixel, without checking for boundaries.
Definition at line 580 of file img/CImage.h.
References internal_get().
Referenced by mrpt::vision::CFeatureExtraction::internal_computeSpinImageDescriptors(), and mrpt::maps::detail::pointmap_traits< CColouredPointsMap >::internal_loadFromRangeScan3D_prepareOneRange().
|
inline |
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 587 of file img/CImage.h.
References internal_get().
|
inline |
Returns a pointer to the first pixel of the given line.
Definition at line 594 of file img/CImage.h.
References internal_get().
Referenced by mrpt::gui::MRPTImage2wxImage(), and mrpt::obs::detail::project3DPointsFromDepthImageInto().
|
inline |
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 600 of file img/CImage.h.
References internal_get().
|
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 169 of file CCanvas.cpp.
Referenced by mrpt::vision::addFeaturesToImage().
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 1607 of file CImage.cpp.
References clear(), m_impl, and makeSureImageIsLoaded().
void CImage::resize | ( | std::size_t | width, |
std::size_t | height, | ||
TImageChannels | nChannels, | ||
PixelDepth | depth = PixelDepth::D8U |
||
) |
Changes the size of the image, erasing previous contents (does NOT scale its current content, for that, see scaleImage).
Definition at line 253 of file CImage.cpp.
References mrpt::img::D8U, mrpt::format(), m_impl, MRPT_END, MRPT_START, pixelDepth2IPLCvDepth(), and THROW_EXCEPTION.
Referenced by CImage(), colorImage(), mrpt::slam::CMetricMapBuilderRBPF::drawCurrentEstimationToImage(), equalizeHist(), filterGaussian(), filterMedian(), mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation(), joinImagesHorz(), loadFromMemoryBuffer(), loadFromStreamAsJPEG(), loadFromXPM(), loadTGA(), mrpt::vision::normalizeImage(), mrpt::vision::CStereoRectifyMap::rectify(), rotateImage(), scaleHalf(), scaleImage(), serializeFrom(), setFromMatrix(), setFromRGBMatrices(), mrpt::vision::CUndistortMap::undistort(), and undistort().
void CImage::rotateImage | ( | CImage & | out_img, |
double | ang, | ||
unsigned int | cx, | ||
unsigned int | cy, | ||
double | scale = 1.0 |
||
) | const |
Rotates the image by the given angle around the given center point, with an optional scale factor.
Definition at line 1708 of file CImage.cpp.
References getChannelCount(), getHeight(), getWidth(), m_impl, makeSureImageIsLoaded(), and resize().
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 336 of file CImage.cpp.
References ASSERT_, m_impl, makeSureImageIsLoaded(), MRPT_END, MRPT_START, and THROW_EXCEPTION.
Referenced by mrpt::slam::CGridMapAligner::AlignPDF_correlation(), mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), mrpt::hmtslam::CHMTSLAM::generateLogFiles(), mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation(), 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 347 of file CImage_JPEG_streams.cpp.
References ASSERT_, jpeg_compress_struct::image_height, jpeg_compress_struct::image_width, jpeg_compress_struct::in_color_space, jpeg_compress_struct::input_components, JCS_GRAYSCALE, JCS_RGB, jpeg_create_compress, jpeg_stdio_dest(), m_impl, makeSureImageIsLoaded(), MRPT_END, MRPT_START, MRPT_TODO, 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 328 of file img/CImage.h.
Referenced by TEST().
void CImage::scaleDouble | ( | CImage & | out_image, |
TInterpolationMethod | interp | ||
) | const |
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 1055 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 313 of file img/CImage.h.
Referenced by TEST().
bool CImage::scaleHalf | ( | CImage & | out_image, |
TInterpolationMethod | interp | ||
) | const |
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 1007 of file CImage.cpp.
References getChannelCount(), image_SSE2_scale_half_1c8u(), image_SSE2_scale_half_smooth_1c8u(), image_SSSE3_scale_half_3c8u(), mrpt::img::IMG_INTERP_LINEAR, mrpt::img::IMG_INTERP_NN, interpolationMethod2Cv(), m_impl, makeSureImageIsLoaded(), resize(), and THROW_EXCEPTION.
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, or operating in-place if out_img==this
.
Definition at line 1682 of file CImage.cpp.
References getChannelCount(), getHeight(), getWidth(), interpolationMethod2Cv(), m_impl, makeSureImageIsLoaded(), and resize().
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 228 of file CCanvas.cpp.
References init_fonts_list(), and list_registered_fonts.
Referenced by drawChessboardCorners(), and mrpt::img::CEnhancedMetaFile::selectVectorTextFont().
|
static |
Unless DISABLE_JPEG_COMPRESSION=true, this sets the JPEG quality (range 1-100) of serialized RGB images.
(Default = 95)
Definition at line 67 of file CImage.cpp.
References SERIALIZATION_JPEG_QUALITY_value.
|
static |
Definition at line 71 of file CImage.cpp.
References SERIALIZATION_JPEG_QUALITY_value.
Referenced by serializeTo().
|
inlineprotectedvirtualinherited |
Virtual method for reading (deserializing) from an abstract schema based archive.
Definition at line 74 of file CSerializable.h.
References mrpt::serialization::CSerializable::GetRuntimeClass(), and THROW_EXCEPTION.
|
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 607 of file CImage.cpp.
References ASSERT_, mrpt::img::CH_GRAY, mrpt::img::CH_RGB, mrpt::io::CMemoryStream::changeSize(), clear(), mrpt::img::D8U, mrpt::io::zip::decompress(), mrpt::io::CMemoryStream::getRawBufferData(), loadFromStreamAsJPEG(), m_externalFile, m_imgIsExternalStorage, m_impl, MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION, resize(), 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 488 of file CImage.cpp.
|
inlineprotectedvirtualinherited |
Virtual method for writing (serializing) to an abstract schema based archive.
Definition at line 64 of file CSerializable.h.
References mrpt::serialization::CSerializable::GetRuntimeClass(), and THROW_EXCEPTION.
|
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 496 of file CImage.cpp.
References ASSERT_, mrpt::io::zip::compress(), cvDepth2PixelDepth(), DISABLE_JPEG_COMPRESSION(), DISABLE_ZIP_COMPRESSION(), mrpt::io::CMemoryStream::getRawBufferData(), mrpt::io::CMemoryStream::getTotalBytesCount(), isColor(), m_externalFile, m_imgIsExternalStorage, m_impl, saveToStreamAsJPEG(), SERIALIZATION_JPEG_QUALITY(), and mrpt::serialization::CArchive::WriteBuffer().
|
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 1511 of file CImage.cpp.
References mrpt::containers::clear().
Referenced by mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation().
Definition at line 475 of file img/CImage.h.
References makeShallowCopy().
Definition at line 519 of file img/CImage.h.
References internal_fromIPL(), and mrpt::img::SHALLOW_COPY.
|
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 827 of file img/CImage.h.
References mrpt::img::CH_GRAY, MRPT_END, MRPT_START, and resize().
Referenced by mrpt::slam::CGridMapAligner::AlignPDF_correlation(), mrpt::maps::CRandomFieldGridMap2D::getAsBitmapFile(), mrpt::vision::normalizeImage(), and mrpt::maps::CRandomFieldGridMap2D::saveMetricMapRepresentationToFile().
|
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 860 of file img/CImage.h.
References ASSERT_, mrpt::img::CH_RGB, makeSureImageIsLoaded(), MRPT_END, MRPT_START, and resize().
|
static |
Definition at line 83 of file CImage.cpp.
References IMAGES_PATH_BASE().
Referenced by mrpt::graphslam::CGraphSlamEngine< GRAPH_T >::initClass(), mrpt::gui::CPanelCameraSelection::writeConfigFromVideoSourcePanel(), and mrpt::graphslam::CGraphSlamEngine< GRAPH_T >::~CGraphSlamEngine().
|
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 1094 of file CImage.cpp.
References ASSERT_, mrpt::img::D8U, getPixelDepth(), m_impl, makeSureImageIsLoaded(), MRPT_END, and MRPT_START.
Efficiently swap of two images.
Definition at line 177 of file CImage.cpp.
References m_externalFile, m_imgIsExternalStorage, and m_impl.
Referenced by mrpt::vision::CFeatureExtraction::extractFeaturesSIFT(), and mrpt::obs::CObservation3DRangeScan::swap().
void CImage::swapRB | ( | ) |
Swaps red and blue channels.
Definition at line 1599 of file CImage.cpp.
References m_impl, and makeSureImageIsLoaded().
Referenced by loadFromXPM(), and mrpt::gui::MRPTImage2wxImage().
|
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 375 of file CCanvas.cpp.
References mrpt::system::decodeUTF8(), isOriginTopLeft(), MRPT_END, and MRPT_START.
Referenced by drawChessboardCorners(), mrpt::img::CCanvas::drawFeatures(), and mrpt::gui::CDisplayWindow::plot().
|
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 189 of file CCanvas.cpp.
References mrpt::round().
void CImage::undistort | ( | CImage & | out_img, |
const mrpt::img::TCamera & | cameraParams | ||
) | const |
Undistort the image according to some camera parameters, and returns an output undistorted image.
out_img | The output undistorted image |
cameraParams | The input camera params (containing the intrinsic and distortion parameters of the camera) |
Definition at line 1625 of file CImage.cpp.
References ASSERTMSG_, mrpt::img::TCamera::dist, getChannelCount(), mrpt::img::TCamera::intrinsicParams, m_impl, makeSureImageIsLoaded(), and resize().
Referenced by mrpt::hwdrivers::CRovio::captureImageAsync(), and mrpt::vision::checkerBoardCameraCalibration().
|
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 1518 of file CImage.cpp.
References m_imgIsExternalStorage, and m_impl.
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 1172 of file CImage.cpp.
References m_impl, and makeSureImageIsLoaded().
|
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 90 of file CSerializable.h.
|
staticprotected |
Definition at line 149 of file img/CImage.h.
|
static |
Definition at line 149 of file img/CImage.h.
|
mutableprotected |
The file name of a external storage image.
Definition at line 1016 of file img/CImage.h.
Referenced by getExternalStorageFile(), getExternalStorageFileAbsolutePath(), makeSureImageIsLoaded(), serializeFrom(), serializeTo(), and swap().
|
mutableprotected |
Set to true only when using setExternalStorage.
Definition at line 1013 of file img/CImage.h.
Referenced by getHeight(), getWidth(), isExternallyStored(), loadFromFile(), loadFromMemoryBuffer(), makeSureImageIsLoaded(), serializeFrom(), serializeTo(), swap(), and unload().
|
protected |
Definition at line 1007 of file img/CImage.h.
Referenced by asCvMat(), asCvMatRef(), CImage(), colorImage(), drawChessboardCorners(), drawCircle(), drawImage(), equalizeHist(), extract_patch(), filterGaussian(), filterMedian(), flipHorizontal(), flipVertical(), getAsMatrix(), getAsMatrixTiled(), getAsRGBMatrices(), getChannelCount(), getChannelsOrder(), getHeight(), getPixelDepth(), getRowStride(), getSize(), getWidth(), grayscale(), internal_fromIPL(), internal_get(), isColor(), joinImagesHorz(), KLT_response(), line(), loadFromFile(), loadFromMemoryBuffer(), loadFromStreamAsJPEG(), loadTGA(), makeDeepCopy(), makeSureImageIsLoaded(), normalize(), operator()(), rectifyImageInPlace(), resize(), rotateImage(), saveToFile(), saveToStreamAsJPEG(), scaleHalf(), scaleImage(), serializeFrom(), serializeTo(), setPixel(), swap(), swapRB(), undistort(), unload(), and update_patch().
|
protectedinherited |
|
protectedinherited |
|
staticprotected |
Definition at line 149 of file img/CImage.h.
Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 8fe78517f Sun Jul 14 19:43:28 2019 +0200 at lun oct 28 02:10:00 CET 2019 |