MRPT
2.0.4
|
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 148 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 | |
void | getAsIplImage (IplImage *dest) const |
(DEPRECATED, DO NOT USE - Kept here only to interface opencv 2.4) More... | |
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 | isEmpty () const |
Returns true if the object is in the state after default constructor. 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 | getAsMatrix (mrpt::math::CMatrix_u8 &outMatrix, bool doResize=true, int x_min=0, int y_min=0, int x_max=-1, int y_max=-1) const |
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 | getAsRGBMatrices (mrpt::math::CMatrix_u8 &outMatrixR, mrpt::math::CMatrix_u8 &outMatrixG, mrpt::math::CMatrix_u8 &outMatrixB, bool doResize=true, int x_min=0, int y_min=0, int x_max=-1, int y_max=-1) const |
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< mrpt::img ::CImage > |
using | ConstPtr = std::shared_ptr< const mrpt::img ::CImage > |
using | UniquePtr = std::unique_ptr< mrpt::img ::CImage > |
using | ConstUniquePtr = std::unique_ptr< const mrpt::img ::CImage > |
static const mrpt::rtti::TRuntimeClassId | runtimeClassId |
static constexpr const char * | className = "mrpt::img" "::" "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 mrpt::img :: CImage > |
Definition at line 150 of file img/CImage.h.
using mrpt::img::CImage::ConstUniquePtr = std::unique_ptr<const mrpt::img :: CImage > |
Definition at line 150 of file img/CImage.h.
using mrpt::img::CImage::Ptr = std::shared_ptr< mrpt::img :: CImage > |
A type for the associated smart pointer
Definition at line 150 of file img/CImage.h.
using mrpt::img::CImage::UniquePtr = std::unique_ptr< mrpt::img :: CImage > |
Definition at line 150 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 162 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 165 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 190 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 187 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 199 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 220 of file CImage.cpp.
References mrpt::img::DEEP_COPY, and m_impl.
Referenced by asCvMat(), cvFindChessboardCorners3(), do_special_dilation(), mrpt::vision::CFeatureExtraction::extractFeaturesAKAZE(), mrpt::vision::CFeatureExtraction::extractFeaturesFAST(), mrpt::vision::CFeatureLines::extractLines(), find_chessboard_corners_multiple(), mrpt::vision::findChessboardCorners(), mrpt::vision::findMultipleChessboardsCorners(), icvGenerateQuads(), mrpt::vision::openCV_cross_correlation(), mrpt::vision::CStereoRectifyMap::rectify(), and mrpt::vision::CUndistortMap::undistort().
|
inline |
Definition at line 540 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 230 of file CImage.cpp.
References m_impl, makeSureImageIsLoaded(), and THROW_EXCEPTION.
Referenced by mrpt::detectors::CCascadeClassifierDetection::detectObjects_Impl(), 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(), mrpt::ros1bridge::toROS(), mrpt::vision::CFeatureTracker_KL::trackFeatures_impl_templ(), and mrpt::vision::CVideoFileWriter::writeImage().
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 240 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 567 of file img/CImage.h.
References internal_get().
Referenced by mrpt::detectors::CFaceDetection::checkIfDiagonalSurface(), mrpt::detectors::CFaceDetection::checkIfDiagonalSurface2(), mrpt::detectors::CFaceDetection::checkIfFacePlaneCov(), mrpt::detectors::CFaceDetection::checkIfFaceRegions(), mrpt::vision::computeSAD(), expect_identical(), mrpt::detectors::CFaceDetection::experimental_calcHist(), mrpt::detectors::CFaceDetection::experimental_segmentFace(), fillImagePseudoRandom(), mrpt::vision::CFeatureExtraction::internal_computeSpinImageDescriptors(), mrpt::vision::matchFeatures(), and TEST().
|
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 574 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 1571 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 1867 of file CImage.cpp.
Referenced by mrpt::vision::checkerBoardStereoCalibration(), mrpt::gui::MRPTImage2wxImage(), mrpt::gui::CDisplayWindow::showImageAndPoints(), and mrpt::gui::CDisplayWindow::showTiledImageAndPoints().
void CImage::colorImage | ( | CImage & | ret | ) | const |
Definition at line 1874 of file CImage.cpp.
References mrpt::img::CH_RGB, getHeight(), getWidth(), isColor(), m_impl, and resize().
|
inline |
Moves an image from another object, erasing the origin image in the process.
Definition at line 506 of file img/CImage.h.
void CImage::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.
CExceptionExternalImageNotFound | If the external image couldn't be loaded. |
Definition at line 181 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 1185 of file CImage.cpp.
References getHeight(), getWidth(), makeSureImageIsLoaded(), and THROW_EXCEPTION.
|
inlinestatic |
Definition at line 150 of file img/CImage.h.
|
inlinestatic |
Definition at line 150 of file img/CImage.h.
|
static |
|
inlinestatic |
Definition at line 150 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 1441 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 56 of file CImage.cpp.
References DISABLE_JPEG_COMPRESSION_value, and val.
|
static |
Definition at line 60 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)
|
static |
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 1805 of file CImage.cpp.
References mrpt::img::TColor::blue(), check_size_x, check_size_y, 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 1136 of file CImage.cpp.
References mrpt::img::TColor::B, mrpt::img::TColor::G, m_impl, makeSureImageIsLoaded(), and mrpt::img::TColor::R.
|
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.
|
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 1148 of file CImage.cpp.
References getHeight(), getWidth(), m_impl, and makeSureImageIsLoaded().
Referenced by mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), and mrpt::maps::COccupancyGridMap2D::saveAsBitmapTwoMapsWithCorrespondences().
|
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 304 of file CCanvas.cpp.
References mrpt::math::size(), and THROW_EXCEPTION.
Referenced by mrpt::img::CCanvas::drawFeatures(), mrpt::img::CCanvas::drawFeaturesSimple(), and mrpt::gui::CDisplayWindow::plot().
|
inlineinherited |
Makes a deep copy of the object and returns a smart pointer to it.
Definition at line 204 of file CObject.h.
References mrpt::rtti::CObject::clone().
Referenced by mrpt::obs::CRawlog::insert().
|
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 452 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().
void CImage::equalizeHist | ( | CImage & | out_img | ) | const |
Equalize the image histogram, saving the new image in the given output object.
Definition at line 1908 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 1172 of file CImage.cpp.
References m_impl, and makeSureImageIsLoaded().
Referenced by 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(), 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 205 of file CCanvas.cpp.
References getHeight().
Referenced by mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), mrpt::img::CEnhancedMetaFile::CEnhancedMetaFile(), mrpt::opengl::CTexturedPlane::onUpdateBuffers_TexturedTriangles(), mrpt::gui::CDisplayWindow::plot(), and mrpt::maps::COccupancyGridMap2D::saveAsBitmapTwoMapsWithCorrespondences().
void CImage::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.
For inplace operation, set out_img to this.
Definition at line 1733 of file CImage.cpp.
References getChannelCount(), m_impl, makeSureImageIsLoaded(), and resize().
Referenced by mrpt::maps::COccupancyGridMap2D::getAsImageFiltered().
void CImage::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.
For inplace operation, set out_img to this.
Definition at line 1718 of file CImage.cpp.
References getChannelCount(), m_impl, makeSureImageIsLoaded(), and resize().
Referenced by mrpt::maps::COccupancyGridMap2D::getAsImageFiltered().
void CImage::flipHorizontal | ( | ) |
Flips the image horizontally.
Definition at line 1657 of file CImage.cpp.
References m_impl, and makeSureImageIsLoaded().
void CImage::flipVertical | ( | ) |
Flips the image vertically.
Definition at line 1649 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 806 of file img/CImage.h.
References makeSureImageIsLoaded().
Referenced by copyFromForceLoad().
uint8_t * CImage::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.
Definition at line 476 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 899 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 907 of file CImage.cpp.
References isColor().
void CImage::getAsIplImage | ( | IplImage * | dest | ) | const |
(DEPRECATED, DO NOT USE - Kept here only to interface opencv 2.4)
Definition at line 2186 of file CImage.cpp.
References ASSERT_, m_impl, makeSureImageIsLoaded(), and THROW_EXCEPTION.
Referenced by mrpt::vision::CFeatureExtraction::internal_computeLogPolarImageDescriptors(), and mrpt::vision::CFeatureExtraction::internal_computePolarImageDescriptors().
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 1244 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(), and mrpt::vision::normalizeImage().
void CImage::getAsMatrix | ( | mrpt::math::CMatrix_u8 & | outMatrix, |
bool | doResize = true , |
||
int | x_min = 0 , |
||
int | y_min = 0 , |
||
int | x_max = -1 , |
||
int | y_max = -1 |
||
) | 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 1295 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().
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 1521 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 1343 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(), mrpt::math::CMatrixDynamic< T >::setSize(), and mrpt::u8tof().
void CImage::getAsRGBMatrices | ( | mrpt::math::CMatrix_u8 & | outMatrixR, |
mrpt::math::CMatrix_u8 & | outMatrixG, | ||
mrpt::math::CMatrix_u8 & | outMatrixB, | ||
bool | doResize = true , |
||
int | x_min = 0 , |
||
int | y_min = 0 , |
||
int | x_max = -1 , |
||
int | y_max = -1 |
||
) | 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 1392 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 884 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::normalizeImage(), 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 828 of file CImage.cpp.
References ASSERT_ABOVEEQ_, ASSERT_BELOWEQ_, m_impl, makeSureImageIsLoaded(), and THROW_EXCEPTION.
Referenced by mrpt::maps::CColouredPointsMap::colourFromObservation(), and mrpt::gui::MRPTImage2wxImage().
|
inlinestatic |
Definition at line 150 of file img/CImage.h.
|
inlinenoexcept |
Only if isExternallyStored() returns true.
Definition at line 785 of file img/CImage.h.
References m_externalFile.
void CImage::getExternalStorageFileAbsolutePath | ( | std::string & | out_path | ) | const |
Only if isExternallyStored() returns true.
Definition at line 1627 of file CImage.cpp.
References ASSERT_, IMAGES_PATH_BASE(), and m_externalFile.
|
inline |
Only if isExternallyStored() returns true.
Definition at line 794 of file img/CImage.h.
Referenced by makeSureImageIsLoaded().
|
overridevirtual |
Returns the height of the image in pixels.
Implements mrpt::img::CCanvas.
Definition at line 855 of file CImage.cpp.
References m_imgIsExternalStorage, m_impl, and makeSureImageIsLoaded().
Referenced by mrpt::opengl::CMeshFast::adjustGridToImageAR(), mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), mrpt::opengl::CMeshFast::assignImage(), mrpt::opengl::CMesh::assignImage(), mrpt::opengl::CMeshFast::assignImageAndZ(), mrpt::opengl::CMesh::assignImageAndZ(), mrpt::vision::checkerBoardStereoCalibration(), mrpt::detectors::CFaceDetection::checkIfDiagonalSurface(), mrpt::detectors::CFaceDetection::checkIfDiagonalSurface2(), mrpt::detectors::CFaceDetection::checkIfFacePlaneCov(), mrpt::detectors::CFaceDetection::checkIfFaceRegions(), colorImage(), mrpt::maps::CColouredPointsMap::colourFromObservation(), mrpt::vision::computeMainOrientation(), mrpt::vision::computeSAD(), correlate(), cross_correlation_FFT(), cvFindChessboardCorners3(), mrpt::slam::CMetricMapBuilderRBPF::drawCurrentEstimationToImage(), mrpt::img::CEnhancedMetaFile::drawImage(), mrpt::img::CCanvas::drawImage(), drawImage(), expect_identical(), mrpt::detectors::CFaceDetection::experimental_segmentFace(), 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(), fillImagePseudoRandom(), find_chessboard_corners_multiple(), getMaxAsFloat(), mrpt::hwdrivers::CCameraSensor::getNextFrame(), icvGenerateQuads(), mrpt::vision::CFeatureExtraction::internal_computeSpinImageDescriptors(), mrpt::maps::detail::pointmap_traits< CColouredPointsMap >::internal_loadFromRangeScan3D_init(), mrpt::vision::CGenericFeatureTracker::internal_trackFeatures(), joinImagesHorz(), mrpt::maps::COccupancyGridMap2D::loadFromBitmap(), main(), mrpt::vision::matchFeatures(), mrpt::gui::MRPTImage2wxImage(), mrpt::vision::normalizeImage(), mrpt::vision::openCV_cross_correlation(), rotateImage(), mrpt::apps::CGridMapAlignerApp::run(), mrpt::maps::COccupancyGridMap2D::saveAsBitmapTwoMapsWithCorrespondences(), mrpt::maps::COccupancyGridMap2D::saveAsEMFTwoMapsWithCorrespondences(), scaleImage(), mrpt::gui::CDisplayWindow::showTiledImageAndPoints(), mrpt::ros1bridge::toROS(), mrpt::vision::CFeatureTracker_KL::trackFeatures_impl_templ(), mrpt::vision::CUndistortMap::undistort(), and mrpt::vision::CVideoFileWriter::writeImage().
|
static |
By default, ".".
Definition at line 79 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 927 of file CImage.cpp.
References getAsFloat(), getHeight(), and getWidth().
PixelDepth CImage::getPixelDepth | ( | ) | const |
Definition at line 293 of file CImage.cpp.
References cvDepth2PixelDepth(), m_impl, MRPT_END, MRPT_START, and THROW_EXCEPTION.
Referenced by mrpt::img::CCanvas::drawImage(), and 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 845 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 807 of file CImage.cpp.
References m_impl, makeSureImageIsLoaded(), THROW_EXCEPTION, mrpt::img::TPixelCoord::x, and mrpt::img::TPixelCoord::y.
Referenced by mrpt::vision::checkerBoardStereoCalibration(), mrpt::vision::computeSAD(), and mrpt::detectors::CFaceDetection::experimental_calcHist().
|
inline |
Return the size of the image.
Definition at line 646 of file img/CImage.h.
Referenced by scaleDouble().
|
overridevirtual |
Returns the width of the image in pixels.
Implements mrpt::img::CCanvas.
Definition at line 818 of file CImage.cpp.
References m_imgIsExternalStorage, m_impl, and makeSureImageIsLoaded().
Referenced by mrpt::opengl::CMeshFast::adjustGridToImageAR(), mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), mrpt::opengl::CMeshFast::assignImage(), mrpt::opengl::CMesh::assignImage(), mrpt::opengl::CMeshFast::assignImageAndZ(), mrpt::opengl::CMesh::assignImageAndZ(), mrpt::vision::checkerBoardStereoCalibration(), mrpt::detectors::CFaceDetection::checkIfDiagonalSurface(), mrpt::detectors::CFaceDetection::checkIfDiagonalSurface2(), mrpt::detectors::CFaceDetection::checkIfFacePlaneCov(), mrpt::detectors::CFaceDetection::checkIfFaceRegions(), colorImage(), mrpt::maps::CColouredPointsMap::colourFromObservation(), mrpt::vision::computeMainOrientation(), mrpt::vision::computeSAD(), correlate(), cross_correlation_FFT(), cvFindChessboardCorners3(), mrpt::img::CEnhancedMetaFile::drawImage(), mrpt::img::CCanvas::drawImage(), drawImage(), expect_identical(), mrpt::detectors::CFaceDetection::experimental_segmentFace(), 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(), fillImagePseudoRandom(), find_chessboard_corners_multiple(), getMaxAsFloat(), mrpt::hwdrivers::CCameraSensor::getNextFrame(), icvGenerateQuads(), 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::normalizeImage(), mrpt::vision::openCV_cross_correlation(), rotateImage(), mrpt::maps::COccupancyGridMap2D::saveAsBitmapTwoMapsWithCorrespondences(), mrpt::maps::COccupancyGridMap2D::saveAsEMFTwoMapsWithCorrespondences(), scaleImage(), mrpt::gui::CDisplayWindow::showImagesAndMatchedPoints(), mrpt::gui::CDisplayWindow::showTiledImageAndPoints(), mrpt::ros1bridge::toROS(), mrpt::vision::CFeatureTracker_KL::trackFeatures_impl_templ(), mrpt::vision::CUndistortMap::undistort(), and mrpt::vision::CVideoFileWriter::writeImage().
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 939 of file CImage.cpp.
Referenced by buildPyramid_templ(), CImage(), mrpt::vision::openCV_cross_correlation(), and TEST().
bool CImage::grayscale | ( | CImage & | ret | ) | const |
Definition at line 971 of file CImage.cpp.
References m_impl, makeSureImageIsLoaded(), my_img_to_grayscale(), and THROW_EXCEPTION.
|
protected |
Definition at line 350 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().
|
protected |
Definition at line 464 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 865 of file CImage.cpp.
References m_impl, makeSureImageIsLoaded(), and THROW_EXCEPTION.
Referenced by buildPyramid_templ(), CImage(), colorImage(), mrpt::maps::CColouredPointsMap::colourFromObservation(), mrpt::img::CCanvas::drawImage(), 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(), serializeTo(), and TEST().
bool CImage::isEmpty | ( | ) | const |
Returns true if the object is in the state after default constructor.
Definition at line 875 of file CImage.cpp.
References m_imgIsExternalStorage, m_impl, and THROW_EXCEPTION.
|
inlinenoexcept |
See setExternalStorage().
Definition at line 782 of file img/CImage.h.
References m_imgIsExternalStorage.
Referenced by mrpt::vision::checkerBoardStereoCalibration().
bool CImage::isOriginTopLeft | ( | ) | const |
Returns true (as of MRPT v2.0.0, it's fixed)
Definition at line 894 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 1893 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 1967 of file CImage.cpp.
References ASSERTMSG_, and m_impl.
Referenced by mrpt::vision::CFeatureExtraction::extractFeaturesFAST(), 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 1123 of file CImage.cpp.
References mrpt::img::TColor::B, mrpt::img::TColor::G, m_impl, makeSureImageIsLoaded(), and mrpt::img::TColor::R.
Referenced by main(), mrpt::gui::CDisplayWindow::plot(), mrpt::apps::CGridMapAlignerApp::run(), mrpt::maps::COccupancyGridMap2D::saveAsBitmapTwoMapsWithCorrespondences(), 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 304 of file CImage.cpp.
References isColor(), m_imgIsExternalStorage, m_impl, MRPT_END, MRPT_START, MRPT_TODO(), and THROW_EXCEPTION.
Referenced by makeSureImageIsLoaded(), and TEST().
|
inline |
Assigns from an image in IplImage format.
Definition at line 513 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 364 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 1050 of file CImage.cpp.
References mrpt::img::CH_RGB, mrpt::img::D8U, m_impl, MRPT_END, MRPT_START, 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 452 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, and resize().
Referenced by mrpt::hwdrivers::CRovio::captureImageAsync(), and serializeFrom().
bool mrpt::img::CImage::loadFromXPM | ( | const char *const * | xpm_array, |
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, mrpt::opengl::internal::data, mrpt::containers::end(), XPMColorMapData::G, GetRGBFromName(), 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 2103 of file CImage.cpp.
References mrpt::img::CH_GRAY, mrpt::img::CH_RGB, mrpt::opengl::internal::data, mrpt::containers::end(), 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 209 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 484 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 1591 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(), getAsIplImage(), 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 1236 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 426 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 583 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 590 of file img/CImage.h.
References internal_get().
|
inline |
Returns a pointer to the first pixel of the given line.
Definition at line 597 of file img/CImage.h.
References internal_get().
Referenced by mrpt::gui::MRPTImage2wxImage().
|
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 603 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 161 of file CCanvas.cpp.
Referenced by mrpt::vision::addFeaturesToImage(), and mrpt::maps::COccupancyGridMap2D::saveAsBitmapTwoMapsWithCorrespondences().
void CImage::rectifyImageInPlace | ( | void * | mapX, |
void * | mapY | ||
) |
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 1673 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 250 of file CImage.cpp.
References mrpt::img::D8U, mrpt::format(), m_impl, MRPT_END, MRPT_START, pixelDepth2CvDepth(), and THROW_EXCEPTION.
Referenced by CImage(), colorImage(), mrpt::slam::CMetricMapBuilderRBPF::drawCurrentEstimationToImage(), equalizeHist(), filterGaussian(), filterMedian(), mrpt::maps::CReflectivityGridMap2D::getAsImage(), mrpt::maps::COccupancyGridMap2D::getAsImage(), mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation(), joinImagesHorz(), loadFromMemoryBuffer(), loadFromStreamAsJPEG(), loadFromXPM(), loadTGA(), mrpt::vision::normalizeImage(), mrpt::vision::CStereoRectifyMap::rectify(), rotateImage(), 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 1773 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 329 of file CImage.cpp.
References ASSERT_, m_impl, makeSureImageIsLoaded(), MRPT_END, MRPT_START, params, and THROW_EXCEPTION.
Referenced by mrpt::slam::CGridMapAligner::AlignPDF_correlation(), mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), kfslam_traits< CRangeBearingKFSLAM >::doPartitioningExperiment(), mrpt::hmtslam::CHMTSLAM::generateLogFiles(), mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation(), mrpt::apps::CGridMapAlignerApp::run(), mrpt::apps::RBPF_SLAM_App_Base::run(), mrpt::maps::COccupancyGridMap2D::saveAsBitmapTwoMapsWithCorrespondences(), mrpt::slam::CMetricMapBuilderRBPF::saveCurrentEstimationToImage(), 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 346 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(), out, and THROW_EXCEPTION.
Referenced by serializeTo().
|
inline |
Returns a new image scaled up to double its original size.
std::exception | On odd size |
Definition at line 329 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 1043 of file CImage.cpp.
References getSize(), out, 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 314 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 995 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(), out, resize(), mrpt::cpu::SSE2, mrpt::cpu::SSSE3, mrpt::cpu::supports(), 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 1747 of file CImage.cpp.
References getChannelCount(), getHeight(), getWidth(), interpolationMethod2Cv(), m_impl, makeSureImageIsLoaded(), resize(), and resize().
Referenced by mrpt::hwdrivers::CCameraSensor::getNextFrame(), scaleDouble(), and TEST().
|
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 220 of file CCanvas.cpp.
References FontData::data, init_fonts_list(), list_registered_fonts, FontData::prepared_to_big_endian, and mrpt::reverseBytesInPlace().
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 64 of file CImage.cpp.
References SERIALIZATION_JPEG_QUALITY_value.
|
static |
Definition at line 68 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 585 of file CImage.cpp.
References ASSERT_EQUAL_, mrpt::io::CMemoryStream::assignMemoryNotOwn(), mrpt::img::CH_GRAY, mrpt::img::CH_RGB, clear(), mrpt::img::D8U, loadFromStreamAsJPEG(), m_externalFile, m_imgIsExternalStorage, m_impl, MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION, mrpt::serialization::CArchive::ReadBuffer(), 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 482 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 490 of file CImage.cpp.
References ASSERT_, cvDepth2PixelDepth(), DISABLE_JPEG_COMPRESSION(), mrpt::io::CMemoryStream::getRawBufferData(), mrpt::io::CMemoryStream::getTotalBytesCount(), isColor(), m_externalFile, m_imgIsExternalStorage, m_impl, out, saveToStreamAsJPEG(), and SERIALIZATION_JPEG_QUALITY().
|
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 1577 of file CImage.cpp.
References mrpt::containers::clear().
Referenced by mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation(), and TEST().
|
inline |
Definition at line 478 of file img/CImage.h.
References makeShallowCopy().
|
inline |
Definition at line 522 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 844 of file img/CImage.h.
References mrpt::img::CH_GRAY, MRPT_END, MRPT_START, and resize().
Referenced by mrpt::slam::CGridMapAligner::AlignPDF_correlation(), kfslam_traits< CRangeBearingKFSLAM >::doPartitioningExperiment(), mrpt::detectors::CFaceDetection::experimental_segmentFace(), mrpt::maps::CRandomFieldGridMap2D::getAsBitmapFile(), mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation(), mrpt::hwdrivers::COpenNI2_RGBD360::getNextObservation(), mrpt::vision::normalizeImage(), mrpt::maps::CRandomFieldGridMap2D::saveMetricMapRepresentationToFile(), and mrpt::graphslam::CGraphSlamEngine< GRAPH_T >::updateRangeImageViewport().
|
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 877 of file img/CImage.h.
References ASSERT_, mrpt::img::CH_RGB, makeSureImageIsLoaded(), MRPT_END, MRPT_START, and resize().
|
static |
Definition at line 80 of file CImage.cpp.
References IMAGES_PATH_BASE().
Referenced by mrpt::apps::RBPF_SLAM_App_Rawlog::impl_initialize(), 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 1082 of file CImage.cpp.
References ASSERT_, mrpt::img::D8U, getPixelDepth(), m_impl, makeSureImageIsLoaded(), MRPT_END, and MRPT_START.
Referenced by mrpt::detectors::CFaceDetection::experimental_segmentFace().
void CImage::swap | ( | CImage & | o | ) |
Efficiently swap of two images.
Definition at line 174 of file CImage.cpp.
References m_externalFile, m_imgIsExternalStorage, and m_impl.
Referenced by mrpt::vision::CFeatureExtraction::extractFeaturesSIFT(), and TEST().
void CImage::swapRB | ( | ) |
Swaps red and blue channels.
Definition at line 1665 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 374 of file CCanvas.cpp.
References mrpt::system::decodeUTF8(), isOriginTopLeft(), mrpt::system::os::memcpy(), 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 181 of file CCanvas.cpp.
References mrpt::round(), and mrpt::math::size().
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 1691 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::obs::CObservation3DRangeScan::undistort().
|
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 1584 of file CImage.cpp.
References m_imgIsExternalStorage, and m_impl.
void CImage::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.
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 1160 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.
|
static |
Definition at line 150 of file img/CImage.h.
|
mutableprotected |
The file name of a external storage image.
Definition at line 1036 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 1033 of file img/CImage.h.
Referenced by getHeight(), getWidth(), isEmpty(), isExternallyStored(), loadFromFile(), loadFromMemoryBuffer(), makeSureImageIsLoaded(), serializeFrom(), serializeTo(), swap(), and unload().
|
protected |
Definition at line 1027 of file img/CImage.h.
Referenced by asCvMat(), asCvMatRef(), CImage(), colorImage(), drawChessboardCorners(), drawCircle(), drawImage(), equalizeHist(), extract_patch(), filterGaussian(), filterMedian(), flipHorizontal(), flipVertical(), getAsIplImage(), getAsMatrix(), getAsMatrixTiled(), getAsRGBMatrices(), getChannelCount(), getChannelsOrder(), getHeight(), getPixelDepth(), getRowStride(), getSize(), getWidth(), grayscale(), internal_fromIPL(), internal_get(), isColor(), isEmpty(), 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 150 of file img/CImage.h.
Page generated by Doxygen 1.8.14 for MRPT 2.0.4 Git: 33de1d0ad Sat Jun 20 11:02:42 2020 +0200 at sáb jun 20 17:35:17 CEST 2020 |