eLynx SDK v3.3.0
C++ image processing API reference

eLynx::Image::ImageGeometryImpl< Pixel > Class Template Reference

Defining implementation for image geometry interface methods. More...

#include <ImageGeometryImpl.h>

Inheritance diagram for eLynx::Image::ImageGeometryImpl< Pixel >:
eLynx::Image::IImageGeometry

List of all members.

Public Member Functions

Generic virtual services
virtual bool Flip (AbstractImage &ioImage, EFlipPlane iFlipPlane, ProgressNotifier &iNotifier) const
 Perform symmetry of an image.
virtual bool Rotate (AbstractImage &ioImage, ERightRotation iRotation, ProgressNotifier &iNotifier) const
 Fast rotate image with right angles.
virtual bool Rotate (AbstractImage &ioImage, double iDegrees, int32 iFlags, ProgressNotifier &iNotifier) const
 Rotate an image with finest degree angles.
virtual bool Crop (AbstractImage &ioImage, uint32 iX, uint32 iY, uint32 iWidth, uint32 iHeight, ProgressNotifier &iNotifier) const
 Crop image.
virtual bool AutoCrop (AbstractImage &ioImage, ProgressNotifier &iNotifier) const
 Automatic Crop image.
virtual bool Resize (AbstractImage &ioImage, uint32 iWidth, uint32 iHeight, ProgressNotifier &iNotifier) const
 Resize image.
virtual bool Zoom (AbstractImage &ioImage, uint32 iZoom, ProgressNotifier &iNotifier) const
 Zoom image.
virtual bool Bin (AbstractImage &ioImage, uint32 iDim, EBinningMethod iMethod, ProgressNotifier &iNotifier) const
 Apply binning to an image.
virtual bool AddBorder (AbstractImage &ioImage, uint32 iLeft, uint32 iRight, uint32 iTop, uint32 iBottom, bool ibBlack, ProgressNotifier &iNotifier) const
 Add border to an image.
virtual bool Shift (AbstractImage &ioImage, int32 iHorizontal, int32 iVertical, ProgressNotifier &iNotifier) const
 Shift an image with complete pixel size.
virtual bool Shift (AbstractImage &ioImage, double iHorizontal, double iVertical, ProgressNotifier &iNotifier) const
 Shift an image with less than pixels resolution.
virtual bool Insert (AbstractImage &ioImage, const AbstractImage &iInserted, int32 iX, int32 iY, ProgressNotifier &iNotifier) const
virtual bool Resample (AbstractImage &ioImage, uint32 iWidth, uint32 iHeight, Math::EResampleFilter iFilter, ProgressNotifier &iNotifier) const
 Resample image using filter.
virtual boost::shared_ptr
< AbstractImage
CreateFlipped (const AbstractImage &iImage, EFlipPlane iFlipPlane, ProgressNotifier &iNotifier) const
 Create a flipped image.
virtual boost::shared_ptr
< AbstractImage
CreateRotated (const AbstractImage &iImage, ERightRotation iRotation, ProgressNotifier &iNotifier) const
 Create a 90° multiple rotated image.
virtual boost::shared_ptr
< AbstractImage
CreateRotated (const AbstractImage &iImage, double iDegrees, int32 iFlags, ProgressNotifier &iNotifier) const
 Create a rotated image with finest degree angles.
virtual boost::shared_ptr
< AbstractImage
CreateSubImage (const AbstractImage &iImage, uint32 iX, uint32 iY, uint32 iWidth, uint32 iHeight, ProgressNotifier &iNotifier) const
 CreateSubImage.
virtual boost::shared_ptr
< AbstractImage
CreateResized (const AbstractImage &iImage, uint32 iWidth, uint32 iHeight, ProgressNotifier &iNotifier) const
 Create a resized image with dimension (iWidth, iHeight) using nearest point algo.
virtual boost::shared_ptr
< AbstractImage
CreateZoomed (const AbstractImage &iImage, uint32 iZoom, ProgressNotifier &iNotifier) const
 Create a zoomed image.
virtual boost::shared_ptr
< AbstractImage
CreateBinned (const AbstractImage &iImage, uint32 iDim, EBinningMethod iMethod, ProgressNotifier &iNotifier) const
 Create binning image.
virtual boost::shared_ptr
< AbstractImage
CreateEnlarged (const AbstractImage &iImage, uint32 iLeft, uint32 iRight, uint32 iTop, uint32 iBottom, bool ibBlack, ProgressNotifier &iNotifier) const
 CreateEnlarged create an image for source adding borders.
virtual boost::shared_ptr
< AbstractImage
CreateShifted (const AbstractImage &iImage, int32 iHorizontal, int32 iVertical, ProgressNotifier &iNotifier) const
virtual boost::shared_ptr
< AbstractImage
CreateShifted (const AbstractImage &iImage, double iHorizontal, double iVertical, ProgressNotifier &iNotifier) const
virtual boost::shared_ptr
< AbstractImage
CreateInserted (const AbstractImage &iImage, const AbstractImage &iInserted, int32 iX, int32 iY, ProgressNotifier &iNotifier) const
virtual boost::shared_ptr
< AbstractImage
CreateResampled (const AbstractImage &iImage, uint32 iWidth, uint32 iHeight, Math::EResampleFilter iFilter, ProgressNotifier &iNotifier) const
virtual boost::shared_ptr
< AbstractImage
CreateExpanded (const AbstractImage &iImage, uint32 iBorder, ProgressNotifier &iNotifier) const

Static Public Member Functions

Specialized static services
static bool FlipVertical (ImageImpl< Pixel > &, ProgressNotifier &=ProgressNotifier_NULL)
static bool FlipHorizontal (ImageImpl< Pixel > &, ProgressNotifier &=ProgressNotifier_NULL)
static bool Flip (ImageImpl< Pixel > &, EFlipPlane, ProgressNotifier &=ProgressNotifier_NULL)
static bool Rotate180 (ImageImpl< Pixel > &, ProgressNotifier &=ProgressNotifier_NULL)
static bool Rotate90 (ImageImpl< Pixel > &, bool ibClockwise, ProgressNotifier &=ProgressNotifier_NULL)
static bool Rotate (ImageImpl< Pixel > &, double iDegrees, int32 iFlags=RF_Default, ProgressNotifier &=ProgressNotifier_NULL)
static bool Crop (ImageImpl< Pixel > &, uint32 iX, uint32 iY, uint32 iWidth, uint32 iHeight, ProgressNotifier &=ProgressNotifier_NULL)
static bool AutoCrop (ImageImpl< Pixel > &, ProgressNotifier &=ProgressNotifier_NULL)
static bool Resize (ImageImpl< Pixel > &, uint32 iWidth, uint32 iHeight, ProgressNotifier &=ProgressNotifier_NULL)
static bool Zoom (ImageImpl< Pixel > &, uint32 iZoom, ProgressNotifier &=ProgressNotifier_NULL)
static bool AddBorder (ImageImpl< Pixel > &, uint32 iLeft, uint32 iRight, uint32 iTop, uint32 iBottom, bool ibBlack=true, ProgressNotifier &=ProgressNotifier_NULL)
static bool Bin (ImageImpl< Pixel > &, uint32 iDim, EBinningMethod, ProgressNotifier &=ProgressNotifier_NULL)
static bool Shift (ImageImpl< Pixel > &, int32 iHorizontal, int32 iVertical, ProgressNotifier &=ProgressNotifier_NULL)
static bool Shift (ImageImpl< Pixel > &, double iHorizontal, double iVertical, ProgressNotifier &=ProgressNotifier_NULL)
static bool Insert (ImageImpl< Pixel > &, const ImageImpl< Pixel > &iInserted, int32 iX, int32 iY, ProgressNotifier &=ProgressNotifier_NULL)
static bool Resample (ImageImpl< Pixel > &, uint32 iWidth, uint32 iHeight, Math::EResampleFilter iFilter, ProgressNotifier &=ProgressNotifier_NULL)
static boost::shared_ptr
< ImageImpl< Pixel > > 
CreateFlipped (const ImageImpl< Pixel > &, EFlipPlane, ProgressNotifier &=ProgressNotifier_NULL)
static boost::shared_ptr
< ImageImpl< Pixel > > 
CreateRotated90 (const ImageImpl< Pixel > &, bool ibClockwise, ProgressNotifier &=ProgressNotifier_NULL)
static boost::shared_ptr
< ImageImpl< Pixel > > 
CreateRotated (const ImageImpl< Pixel > &, double iDegrees, int32 iFlags=RF_Default, ProgressNotifier &=ProgressNotifier_NULL)
static boost::shared_ptr
< ImageImpl< Pixel > > 
CreateSubImage (const ImageImpl< Pixel > &, uint32 iX, uint32 iY, uint32 iWidth, uint32 iHeight, ProgressNotifier &=ProgressNotifier_NULL)
static boost::shared_ptr
< ImageImpl< Pixel > > 
CreateResized (const ImageImpl< Pixel > &, uint32 iWidth, uint32 iHeight, ProgressNotifier &=ProgressNotifier_NULL)
static boost::shared_ptr
< ImageImpl< Pixel > > 
CreateZoomed (const ImageImpl< Pixel > &, uint32 iZoom, ProgressNotifier &=ProgressNotifier_NULL)
static boost::shared_ptr
< ImageImpl< Pixel > > 
CreateEnlarged (const ImageImpl< Pixel > &, uint32 iLeft, uint32 iRight, uint32 iTop, uint32 iBottom, bool ibBlack=true, ProgressNotifier &=ProgressNotifier_NULL)
static boost::shared_ptr
< ImageImpl< Pixel > > 
CreateBinned (const ImageImpl< Pixel > &iImage, uint32 iDim, EBinningMethod iMethod, ProgressNotifier &=ProgressNotifier_NULL)
static boost::shared_ptr
< ImageImpl< Pixel > > 
CreateShifted (const ImageImpl< Pixel > &iImage, int32 iHorizontal, int32 iVertical, ProgressNotifier &=ProgressNotifier_NULL)
static boost::shared_ptr
< ImageImpl< Pixel > > 
CreateShifted (const ImageImpl< Pixel > &iImage, double iHorizontal, double iVertical, ProgressNotifier &=ProgressNotifier_NULL)
static boost::shared_ptr
< ImageImpl< Pixel > > 
CreateInserted (const ImageImpl< Pixel > &iImage, const ImageImpl< Pixel > &iInserted, int32 iX, int32 iY, ProgressNotifier &=ProgressNotifier_NULL)
static boost::shared_ptr
< ImageImpl< Pixel > > 
CreateResampled (const ImageImpl< Pixel > &, uint32 iWidth, uint32 iHeight, Math::EResampleFilter iFilter, ProgressNotifier &=ProgressNotifier_NULL)
static boost::shared_ptr
< ImageImpl< Pixel > > 
CreateExpanded (const ImageImpl< Pixel > &iImage, uint32 iBorder, ProgressNotifier &=ProgressNotifier_NULL)

Detailed Description

template<class Pixel>
class eLynx::Image::ImageGeometryImpl< Pixel >

Defining implementation for image geometry interface methods.

IImageGeometry.png

Member Function Documentation

template<class Pixel >
virtual bool eLynx::Image::ImageGeometryImpl< Pixel >::AddBorder ( AbstractImage ioImage,
uint32  iLeft,
uint32  iRight,
uint32  iTop,
uint32  iBottom,
bool  ibBlack,
ProgressNotifier iNotifier 
) const [virtual]

Add border to an image.

color.AddBorderBlack.png

AddBorder(10,20,30,40,true)
color.original.png

Original
color.AddBorderWhite.png

AddBorder(40,30,20,10,false)
Parameters:
ioImagesource image.
iLeftsize on border to add on left in pixels.
iRightsize on border to add on right in pixels.
iTopsize on border to add on top in pixels.
iBottomsize on border to add on bottom in pixels.
ibBlacktrue to have black border, false for white.
iNotifiera notifier for progression and cancel.
Returns:
Method running status.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual bool eLynx::Image::ImageGeometryImpl< Pixel >::AutoCrop ( AbstractImage ioImage,
ProgressNotifier iNotifier 
) const [virtual]

Automatic Crop image.

Parameters:
ioImageimage to process.
iNotifiera notifier for progression and cancel.
Returns:
Method running status.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual bool eLynx::Image::ImageGeometryImpl< Pixel >::Bin ( AbstractImage ioImage,
uint32  iDim,
EBinningMethod  iMethod,
ProgressNotifier iNotifier 
) const [virtual]

Apply binning to an image.

color.original.png

Original
color.Bin2x2AVG.png

Bin(2,BI_AVG)
color.Bin2x2SUM.png

Bin(2,BI_SUM)
color.Bin3x3AVG.png

Bin(3,BI_AVG)
color.Bin3x3SUM.png

Bin(3,BI_SUM)
Parameters:
ioImageimage to process.
iDimBinning scale. Only 2 and 3 are supported
iMethodBinning method.
iNotifiera notifier for progression and cancel.
Returns:
Method running status.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual boost::shared_ptr<AbstractImage> eLynx::Image::ImageGeometryImpl< Pixel >::CreateBinned ( const AbstractImage iImage,
uint32  iDim,
EBinningMethod  iMethod,
ProgressNotifier iNotifier 
) const [virtual]

Create binning image.

Parameters:
iImagesource image.
iDimBinning scale. Only 2 and 3 are supported
iMethodBinning method.
iNotifiera notifier for progression and cancel.
Returns:
new binning image or NULL.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual boost::shared_ptr<AbstractImage> eLynx::Image::ImageGeometryImpl< Pixel >::CreateEnlarged ( const AbstractImage iImage,
uint32  iLeft,
uint32  iRight,
uint32  iTop,
uint32  iBottom,
bool  ibBlack,
ProgressNotifier iNotifier 
) const [virtual]

CreateEnlarged create an image for source adding borders.

Parameters:
iImagesource image.
iLeftsize on border to add on left in pixels.
iRightsize on border to add on right in pixels.
iTopsize on border to add on top in pixels.
iBottomsize on border to add on bottom in pixels.
ibBlacktrue to have black border, false for white.
iNotifiera notifier for progression and cancel.
Returns:
The sub image.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual boost::shared_ptr<AbstractImage> eLynx::Image::ImageGeometryImpl< Pixel >::CreateFlipped ( const AbstractImage iImage,
EFlipPlane  iFlipPlane,
ProgressNotifier iNotifier 
) const [virtual]

Create a flipped image.

Parameters:
iImagesource image.
iFlipPlaneflip plane for symetry.
iNotifiera notifier for progression and cancel.
Returns:
The new flipped image.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual boost::shared_ptr<AbstractImage> eLynx::Image::ImageGeometryImpl< Pixel >::CreateResized ( const AbstractImage iImage,
uint32  iWidth,
uint32  iHeight,
ProgressNotifier iNotifier 
) const [virtual]

Create a resized image with dimension (iWidth, iHeight) using nearest point algo.

Parameters:
iImagesource image.
iWidththe width of the new image.
iHeightthe height of the new image.
iNotifiera notifier for progression and cancel.
Returns:
The new resized image.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual boost::shared_ptr<AbstractImage> eLynx::Image::ImageGeometryImpl< Pixel >::CreateRotated ( const AbstractImage iImage,
double  iDegrees,
int32  iFlags,
ProgressNotifier iNotifier 
) const [virtual]

Create a rotated image with finest degree angles.

Parameters:
iImagesource image.
iDegreesthe rotation angle in degrees.
iFlagsa combinaison of RF_Expand, RF_Interpolation and RF_Antialiasing.
iNotifiera notifier for progression and cancel.
Returns:
The new rotated image.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual boost::shared_ptr<AbstractImage> eLynx::Image::ImageGeometryImpl< Pixel >::CreateRotated ( const AbstractImage iImage,
ERightRotation  iRotation,
ProgressNotifier iNotifier 
) const [virtual]

Create a 90° multiple rotated image.

Parameters:
iImagesource image.
iRotationthe rotation of 0°, 90°, 180° or 270°
iNotifiera notifier for progression and cancel.
Returns:
The new rotated image.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual boost::shared_ptr<AbstractImage> eLynx::Image::ImageGeometryImpl< Pixel >::CreateSubImage ( const AbstractImage iImage,
uint32  iX,
uint32  iY,
uint32  iWidth,
uint32  iHeight,
ProgressNotifier iNotifier 
) const [virtual]

CreateSubImage.

Parameters:
iImagesource image.
iXx position of top left point of subimage in image.
iYy position of top left point of subimage in image.
iWidthwidth of sub-image.
iHeightheight of sub-image.
iNotifiera notifier for progression and cancel.
Returns:
The sub image.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual boost::shared_ptr<AbstractImage> eLynx::Image::ImageGeometryImpl< Pixel >::CreateZoomed ( const AbstractImage iImage,
uint32  iZoom,
ProgressNotifier iNotifier 
) const [virtual]

Create a zoomed image.

Parameters:
iImagesource image.
iZoommagnifier coefficient.
iNotifiera notifier for progression and cancel.
Returns:
The new zoomed image.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual bool eLynx::Image::ImageGeometryImpl< Pixel >::Crop ( AbstractImage ioImage,
uint32  iX,
uint32  iY,
uint32  iWidth,
uint32  iHeight,
ProgressNotifier iNotifier 
) const [virtual]

Crop image.

color.original.png

Original
color.Crop.png

Crop(40,20, 100,50)
Parameters:
ioImageimage to process.
iXx position of top left point in image.
iYy position of top left point in image.
iWidthwidth image after crop.
iHeightheight image after crop.
iNotifiera notifier for progression and cancel.
Returns:
Method running status.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual bool eLynx::Image::ImageGeometryImpl< Pixel >::Flip ( AbstractImage ioImage,
EFlipPlane  iFlipPlane,
ProgressNotifier iNotifier 
) const [virtual]

Perform symmetry of an image.

color.FlipH.png

Flip(FP_Horizontal)
color.original.png

Original
color.FlipV.png

Flip(FP_Vertical)
Parameters:
ioImageimage to process.
iFlipPlaneflip plane for symetry.
iNotifiera notifier for progression and cancel.
Returns:
Method running status.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual bool eLynx::Image::ImageGeometryImpl< Pixel >::Resample ( AbstractImage ioImage,
uint32  iWidth,
uint32  iHeight,
Math::EResampleFilter  iFilter,
ProgressNotifier iNotifier 
) const [virtual]

Resample image using filter.

color.original.png

Original
color.Resample_Mitchell.png

Resample(220,110) with RF_Mitchell
Parameters:
ioImageimage to process.
iWidththe new width.
iHeightthe new height.
iFilterthe filter to use.
iNotifiera notifier for progression and cancel.
Returns:
Method running status.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual bool eLynx::Image::ImageGeometryImpl< Pixel >::Resize ( AbstractImage ioImage,
uint32  iWidth,
uint32  iHeight,
ProgressNotifier iNotifier 
) const [virtual]

Resize image.

color.original.png

Original
color.Resize.png

Resize(100, 200)
Parameters:
ioImageimage to process.
iWidththe new width.
iHeightthe new height.
iNotifiera notifier for progression and cancel.
Returns:
Method running status.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual bool eLynx::Image::ImageGeometryImpl< Pixel >::Rotate ( AbstractImage ioImage,
ERightRotation  iRotation,
ProgressNotifier iNotifier 
) const [virtual]

Fast rotate image with right angles.

color.original.png

Original
color.Rotate90R.png

Rotate(RR_90Right)
color.Rotate180.png

Rotate(RR_180)
color.Rotate90L.png

Rotate(RR_90Left)
Parameters:
ioImageimage to process.
iRotationthe rotation of 0°, 90°, 180° or 270°.
iNotifiera notifier for progression and cancel.
Returns:
Method running status.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual bool eLynx::Image::ImageGeometryImpl< Pixel >::Rotate ( AbstractImage ioImage,
double  iDegrees,
int32  iFlags,
ProgressNotifier iNotifier 
) const [virtual]

Rotate an image with finest degree angles.

Parameters:
ioImageimage to process.
iDegreesthe rotation angle in degrees.
iFlagsa combinaison of RF_Expand, RF_Interpolation and RF_Antialiasing.
iNotifiera notifier for progression and cancel.
Returns:
The new rotated image.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual bool eLynx::Image::ImageGeometryImpl< Pixel >::Shift ( AbstractImage ioImage,
int32  iHorizontal,
int32  iVertical,
ProgressNotifier iNotifier 
) const [virtual]

Shift an image with complete pixel size.

color.Shift50_10.png

Shift(50,10)
color.original.png

Original
color.ShiftM20_0.png

Shift(-20,0)
Parameters:
ioImageimage to process.
iHorizontalhorizontal shift in pixels, >0 means right shift, <0 left shift.
iVerticalvertical shift in pixels, >0 means bottom shift, <0 top shift.
iNotifiera notifier for progression and cancel.
Returns:
Method running status.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual bool eLynx::Image::ImageGeometryImpl< Pixel >::Shift ( AbstractImage ioImage,
double  iHorizontal,
double  iVertical,
ProgressNotifier iNotifier 
) const [virtual]

Shift an image with less than pixels resolution.

Parameters:
ioImageimage to process.
iHorizontalhorizontal shift.
iVerticalvertical shift.
iNotifiera notifier for progression and cancel.
Returns:
Method running status.

Implements eLynx::Image::IImageGeometry.

template<class Pixel >
virtual bool eLynx::Image::ImageGeometryImpl< Pixel >::Zoom ( AbstractImage ioImage,
uint32  iZoom,
ProgressNotifier iNotifier 
) const [virtual]

Zoom image.

color.original.png

Original
color.Zoom2.png

Zoom(2)
Parameters:
ioImageimage to process.
iZoommagnifier coefficient.
iNotifiera notifier for progression and cancel.
Returns:
Method running status.

Implements eLynx::Image::IImageGeometry.


The documentation for this class was generated from the following file:

Generated on Thu Dec 9 2010 by doxygen 1.7.2