BIAS::Image< StorageType > Class Template Reference
[Image and Image Base]

The image template class for specific storage types. More...

#include <Base/Image/Image.hh>

Inheritance diagram for BIAS::Image< StorageType >:

Inheritance graph
[legend]
Collaboration diagram for BIAS::Image< StorageType >:

Collaboration graph
[legend]

List of all members.

Misc functions

void BIASToTextureCoordinates (const double &biasx, const double &biasy, double &gl_x, double &gl_y) const
 transfer BIAS image coordinates [0.
void ClearDataPointer ()
 set data pointer to NULL, such that image IsEmpty _without_ deletion of data.
int Display () const
 display image simple signature interface for Debugger usage This function can be used to display an (intermediate) image "interactively" with the MS Visual Studio Debugger in "Watch+Debug" expert mode.
int Display (const bool &waitForKey, const unsigned int &delayMsec, const float &scale) const
 DEPRECATED to avoid interface conflict between char* and bool.
int Display (const std::string &DestWin) const
 simpler interface for the above.
int Display (const std::string &DestWin, const bool &autoresize, const bool &moveToTopLeft, const bool &waitForKey, const unsigned int &delayMsec=DEFAULT_Display_delay, const float &scale=DEFAULT_32to8_scale, const bool &allowAlphaWindow=false) const
 OpenCV onscreen popup display, very useful for fast debugging. (JW).
bool IsPositionInImage (const int &x, const int &y) const
 check if image contains that pixel position
bool IsPowerOfTwoSize () const
int MoveToClosestPositionInImage (int &x, int &y) const
 find closest valid pixel position to x,y
bool NotBiggerPixelAndSameChannelCount (const ImageBase &Image) const
 checks if data area has bigger or the same "size" as Image of other type
voidPixelValueBase (unsigned x, unsigned y, unsigned channel=0)
bool PowerOfTwoSize (unsigned int &width2, unsigned int &height2) const
void PrintHeader (std::ostream &os=std::cout) const
void RedirectImageDataPointer (void *data)
 This method takes data and set the internal image data pointer to this.
void ReleaseImageDataPointer ()
 Releases ImageData_ (to be used together with RedirectImageDataPointer).
bool SamePixelAndChannelCount (const ImageBase &Image) const
 checks if data area has same "size" as Image of other type
void SetZero ()
 zeroes the image
void TextureToBIASCoordinates (const double &gl_x, const double &gl_y, double &biasx, double &biasy) const
 transfer GL texture coordinates [0.
static int GetChannelcount (const enum BIAS::ImageBase::EColorModel &colormodel)
 get the number of channels corresponding to the enum ColorModel Determines the number of (packed) data values.
static int GetSizeByte (const enum BIAS::ImageBase::EStorageType &storagetype)
 get the size in Byte of the type corresponding to a storagetype uses sizeof(type) internally.
static int GetSizeUnits (const enum BIAS::ImageBase::EColorModel &colormodel)
 get the number of (packed) data values of color model E.g: CM_Grey : 1 CM_YUYV422 : 2 packs 3 channel YUV into 2 Bytes CM_RGB : 3 CM_BGRA : 4 CM_Bayer_GBRG : 1 packed Bayer pattern CM_PGR_XB3_F7M3_GBRG : 3 packed three Bayer patterns w.
static int GetStorageSizeByte (const unsigned int &width, const unsigned int &height, const unsigned int nChannels, const enum EStorageType storageType)
 computes the storage data size in Byte required for a given video format.
static bool IsPowerOfTwoSize (const unsigned int w, const unsigned int h)
static unsigned int PowerOfTwoSize (const unsigned int &val)

Get functions

bool DimensionMatch (const BIAS::ImageBase &other) const
bool FormatMatch (const BIAS::ImageBase &d) const
unsigned int GetBitDepth () const
 returns the bits per channel Is not necessairily 8*sizeof(StorageType), could be fewer bits, eg.
unsigned int GetByteDepth () const
int GetChannel (const ImageBase &source, const unsigned int channel)
 copies one specific channel from source to Image can only be called from an planar image, so call ToPlanar() before so far only implemented for CM_YUYV422, BGR and RGB
unsigned int GetChannelCount () const
 returns the number of Color channels, e.g.
enum EColorModel GetColorModel () const
unsigned int GetDepth () const
 returns the bytes per channel, which is the sizeof(StorageType) Should match GetSizeDepth(GetStorageType()).
unsigned int GetHeight () const
const MetaDataGetMetaData () const
MetaDataGetMetaData ()
unsigned long int GetPixelCount () const
 returns number of pixels in image
unsigned int GetPixelPosition (unsigned int x, unsigned int y, unsigned short int channel=0) const
 returns the Position (index from array start) in ImageData Warning: until 2005-01-04 the position inbyte was returned but used as position in <StorageType> (ImageDraw).
unsigned int GetSize () const
 returns the image size in bytes = count - NOT the dimension DEPRECATED Please use GetSizeByte instead to avoid storage type confusion on pointers and char/wideChar unicode
unsigned int GetSizeByte () const
 returns the nr.
enum EStorageType GetStorageType () const
const BIAS::UUIDGetUID () const
 returns the UUID of the image
int GetVersionNumber () const
unsigned int GetWidth () const
unsigned int GetWidthStep () const
 returns the number of bytes per line
bool IsInterleaved () const
bool IsPlanar () const
void SetMetaData (const MetaData &m)
static void PrintPixelValue (const ImageBase &im, const unsigned int x, const unsigned int y, const unsigned short channel=0, std::ostream &os=std::cout)
BIASImageBase_EXPORT std::ostream & operator<< (std::ostream &os, const ImageBase &img)
BIASImageBase_EXPORT std::istream & operator>> (std::istream &is, ImageBase &img)

Public Types

enum  EColorModel {
  CM_invalid = -1, CM_Grey, CM_RGB, CM_BGR,
  CM_YUYV422, CM_UYVY422, CM_YUV420P, CM_YUV444,
  CM_YUV411, CM_HSV, CM_HSI_OBS, CM_DV,
  CM_RGBA, CM_GreyA, CM_Bayer_RGGB, CM_Bayer_GBRG,
  CM_Bayer_GRBG, CM_Bayer_BGGR, CM_HSL, CM_hsL,
  CM_SymTensor2x2, CM_BGRA, CM_RGBE, CM_PGR_XB3_F7M3_GBRG,
  CM_DepthAndVariance, CM_YUYV, CM_LUV, CM_XYZ,
  CM_Disparity, CM_Depth, CM_I1I2I3, CM_DOES_NOT_EXIST
}
 These are the most often used color models. More...
enum  EStorageType {
  ST_invalid = -1, ST_unsignedchar, ST_char, ST_unsignedshortint,
  ST_shortint, ST_unsignedint, ST_int, ST_float,
  ST_double
}

Public Member Functions

void AddDebugLevel (const std::string &name)
void AddDebugLevel (const long int lv)
int AppendChannel (Image< StorageType > &img)
 Append an image with one channel of same StorageType.
template<>
void BilinearInterpolationShiftRegion (const double &x, const double &y, unsigned int hws_x, unsigned int hws_y, unsigned char *Buffer)
virtual Image< StorageType > * Clone () const
 virtual covariant copy constructor which produces the same type of object as the template object (Image, Camera, .
void CopyIn_NoInit (void *data)
 Take some data and fill it into the Image.
bool DebugLevelIsSet (const std::string &name) const
bool DebugLevelIsSet (const long int lv) const
template<>
unsigned char FastBilinearInterpolationGrey (const double x, const double y) const
int GetDebugLevel () const
void GetDebugStream (std::ostream &os) const
std::ostream & GetDebugStream () const
template<>
 Image (unsigned int Width, unsigned int Height, unsigned int Channels, bool interleaved)
template<>
 Image (const ImageBase &im)
template<>
 Image ()
template<>
 Image (unsigned int Width, unsigned int Height, unsigned int Channels, bool interleaved)
template<>
 Image (const ImageBase &im)
template<>
 Image ()
template<>
 Image (unsigned int Width, unsigned int Height, unsigned int Channels, bool interleaved)
template<>
 Image (const ImageBase &im)
template<>
 Image ()
template<>
 Image (unsigned int Width, unsigned int Height, unsigned int Channels, bool interleaved)
template<>
 Image (const ImageBase &im)
template<>
 Image (unsigned int Width, unsigned int Height, unsigned int Channels, bool interleaved)
template<>
 Image (const ImageBase &im)
template<>
 Image ()
template<>
 Image (unsigned int Width, unsigned int Height, unsigned int Channels, bool interleaved)
template<>
 Image (const ImageBase &im)
template<>
 Image ()
template<>
 Image (unsigned int Width, unsigned int Height, unsigned int Channels, bool interleaved)
template<>
 Image (unsigned int Width, unsigned int Height, unsigned int Channels, bool interleaved)
template<>
 Image (const ImageBase &im)
template<>
 Image (const ImageBase &im)
template<>
 Image ()
template<>
 Image ()
template<>
 Image ()
 Image (const ImageBase &im)
 create image from imagebase.
 Image (unsigned int width, unsigned int height, unsigned int channels=1, const bool interleaved=true)
 constructor with size and channels allocates image data
 Image ()
void Init (unsigned int Width, unsigned int Height, unsigned int channels=1, enum EStorageType storageType=ST_unsignedchar, const bool interleaved=true)
 calls Init from ImageBase storageType is ignored, just dummy argument
int InitWithForeignData (unsigned int width, unsigned int height, unsigned int channels, void *data, const bool interleaved=true)
 This is used to construct a BIAS::Image hull around existing image data.
bool IsEmpty () const
 check if ImageData_ points to allocated image buffer or not
template<>
double MaxSTValue ()
template<>
unsigned int MaxSTValue ()
template<>
int MaxSTValue ()
template<>
unsigned short MaxSTValue ()
template<>
short MaxSTValue ()
template<>
char MaxSTValue ()
template<>
float MaxSTValue ()
template<>
unsigned char MaxSTValue ()
template<>
float MinSTValue ()
template<>
unsigned char MinSTValue ()
template<>
double MinSTValue ()
template<>
unsigned int MinSTValue ()
template<>
int MinSTValue ()
template<>
unsigned short MinSTValue ()
template<>
short MinSTValue ()
template<>
char MinSTValue ()
long int Name2DebugLevel (const std::string &name) const
 looks up a debuglevel in the internal map, returns 0 if not found
long int NewDebugLevel (const std::string &name)
 creates a new debuglevel
template<>
Image< unsigned char > & operator| (const Image< unsigned char > &argimage)
template<>
Image< short int > & operator| (const Image< short int > &argimage)
void PrintDebugLevel (std::ostream &os=std::cout) const
void ReInit (const unsigned int &width, const unsigned int &height, const unsigned int nChannels=1, const enum EStorageType storageType=ST_unsignedchar, const bool interleaved=true, const EColorModel colormodel=CM_Grey)
 (Re-)Initialize Image data if required.
void Release ()
 reimplemented from ImageBase
void RemoveDebugLevel (const std::string &name)
void RemoveDebugLevel (const long int lv)
void SetDebugLevel (const std::string &name)
void SetDebugLevel (const long int lv)
void SetDebugStream (const std::ostream &os)
void ShowDebugLevel (std::ostream &os=std::cout) const
 prints all internally known debuglevels
int StealImage (ImageBase &source)
 steals the image data array from source, after releasing the actual image data and sets source image data to NULL
virtual ~Image ()
Thresholding and Scaling
int AboveThresholdToValue (StorageType Threshold, StorageType Value)
 sets alls pixels with values above Threshold to Value
int BelowThresholdToValue (StorageType Threshold, StorageType Value)
 sets alls pixels with values below Threshold to Value
void Binarize (StorageType Threshold)
 sets all pixels >= Threshold to MaxPixelValue and all others to MinPixelValue only for one channel / grey images
int BinaryThreshold (StorageType Threshold, StorageType MinValue, StorageType MaxValue)
 Test for every pixel wether it is >= than the threshold.
int CalcScaleShift (double Min, double Max, double &Scale, double &Shift) const
 calculate the values needed by ScaleShiftBetween
int ScaleShift (double Scale, double Shift)
 scales and shifts image (all channels simultanously)
int ScaleShiftBetween (double Min, double Max)
 scales and shifts image so afterwards every pixel has a value between Min and Max
int ScaleShiftChannel (double Scale, double Shift, unsigned int channel)
 similiar to ScaleShift, but only scales and shifts one image channel
Misc Functions
void AbsDiff (const Image< StorageType > &im1, const Image< StorageType > &im2)
 (*this) = | im1 - im2 | sets this as the absolute difference between two arg images
StorageType MaxSTValue ()
 returns the maximal possible StorageType
StorageType MinSTValue ()
 returns the minimal possible StorageType
std::ostream & PrintData (std::ostream &os) const
 writes data of IplImage_ to os (ascii)
std::ostream & PrintPointer (std::ostream &os) const
 writes pointer of IplImage_ to os (ascii)
Image< float > Reciprocal (const float factor=1.0, const unsigned short int channel=0)
 Jan Woetzel 01/2003.
Interpolating Functions
double BicubicInterpolation (const double &x, const double &y, const unsigned short int channel=0) const
 Returns the bicubic interpolated pixel value (using channel offset) value of pixel defined by double coordinates, ignoring an existing ROI Does not work for planar multi-channel images !
double BilinearInterpolation (const double x, const double y, const unsigned short int channel=0) const
 Returns the bilinear interpolated pixel value (using channel offset) value of pixel defined by double coordinates, ignoring an existingROI.
double BilinearInterpolationGrey (const double x, const double y) const
 no boundary checking ! ignores ROI
double BilinearInterpolationGreyMaxVal (const double x, const double y, const StorageType &maxVal) const
 bilinear interpolation pixel value with value check.
double BilinearInterpolationGreyMinVal (const double x, const double y, const StorageType &minVal) const
 bilinear interpolation pixel value with value check.
double BilinearInterpolationRGBInterleaved (const double x, const double y, unsigned int channel) const
 no boundary checking ! ignores ROI
double BilinearInterpolationRGBPlanar (const double x, const double y, unsigned int channel) const
 no boundary checking ! ignores ROI
void BilinearInterpolationShiftRegion (const double &x, const double &y, unsigned int hws_x, unsigned int hws_y, unsigned char *Buffer)
 sample the continuous (bilinear interpolation of (*this)) image using a grid with one pixel spacing at subpixel positions (x-hws, y-hws) , .
StorageType FastBilinearInterpolationGrey (const double x, const double y) const
 fast bilinear interpolation specialisation for unsigned char exists, 20% faster than function below
double InterpolationGrey (const double x, const double y) const
 interpolation with weights according to distances to x and y
double LinearInterpolation (const double x, const unsigned int y) const
double LinearInterpolation (const unsigned int x, const double y) const
Set Functions
void Clear (const StorageType value=0)
 sets all pixels to zero/value
void FillImageWithConstValue (StorageType Value[])
 fill color images
void FillImageWithConstValue (StorageType Value)
 fill grey images
void FillImageWithXValue ()
 fills image with value depending on x coordinate
void SetPixel (const StorageType &value0, const StorageType &value1, const StorageType &value2, const unsigned int &x, const unsigned int &y)
 set the values of the first three channels of a given pixel (x,y) in channel to value[0.
void SetPixel (const StorageType &value, const unsigned int &x, const unsigned int &y, const unsigned short int channel=0)
 set the value of a given pixel (x,y) in channel to value.
Region of Interest Functions
Important: the ROI has a size of (lrx-ulx)*(lry-uly) that means the lower right point is not part of the ROI!

int Cut2ROI ()
 reduces image to current ROI, !!! image size changes !!!
int GetCopyOfROI (ImageBase &copy) const
 returns a copy of ROI (a new image) lower right point excluded, only interleaved images !
int GetCopyOfROI2 (ImageBase &copy) const
 like GetCopyOfROI, but with lower right point included only interleaved images !
void GetROI (int &UpperLeftX, int &UpperLeftY, int &LowerRightX, int &LowerRightY) const
 deprecated, use GetROICorners()
void GetROI (unsigned int &UpperLeftX, unsigned int &UpperLeftY, unsigned int &LowerRightX, unsigned int &LowerRightY) const
 deprecated, use GetROICorners()
const ROIGetROI () const
ROIGetROI ()
 Returns a pointer to the roi object.
void GetROICorners (int &UpperLeftX, int &UpperLeftY, int &LowerRightX, int &LowerRightY) const
 access region of interest rectangle JW
void GetROICorners (unsigned int &UpperLeftX, unsigned int &UpperLeftY, unsigned int &LowerRightX, unsigned int &LowerRightY) const
 access region of interest rectangle JW
const unsigned int GetROILowerRightX () const
 deprecated, use GetROI()->GetCorners()
const unsigned int GetROILowerRightY () const
 deprecated, use GetROI()->GetCorners()
const unsigned int GetROIUpperLeftX () const
 deprecated, use GetROI()->GetCorners()
const unsigned int GetROIUpperLeftY () const
 deprecated, use GetROI()->GetCorners()
const bool IsInROI (const double &x, const double &y) const
int Paste2ROI (const ImageBase &Image)
 paste Image to current ROI
void PrintROI (std::ostream &os=std::cout) const
 deprecated, use 'os << *GetROI()'
void SetOutsideROIZero ()
 sets all pixel not in ROI to zero
int SetROI (unsigned int UpperLeftX, unsigned int UpperLeftY, unsigned int LowerRightX, unsigned int LowerRightY)
 deprecated, use SetROICorners()
int SetROICorners (unsigned int UpperLeftX, unsigned int UpperLeftY, unsigned int LowerRightX, unsigned int LowerRightY)
void UnsetROI ()
 deprecated, use GetROI()->UnsetROI()
Padding and Appending
int Flip ()
 flips the image vertically (row order is inverted) In place function return 0 in case of success, -1 otherwise
int FlipHorizontal ()
 flips the image horizontal (column order is inverted) In place function return 0 in case of success, -1 otherwise
int Mirror ()
 interface for the above JW
int Pad (const unsigned int &newwidth, const unsigned int &newheight, const int &padVal=0)
int Pad (BIAS::ImageBase &dest, const unsigned int &newwidth, const unsigned int &newheight, const int &padVal=0) const
int PadToPowerOfTwo (const int &padVal=0)
 in place version of the above
int PadToPowerOfTwo (BIAS::ImageBase &dest, const int &padVal=0) const
 increase the size of this image to next power of two (e.g.
int PadToPowerOfTwoAndFlip (const int &padVal=0)
 first pad, then flip.
int ZeroPad (const unsigned int newwidth, const unsigned int newheight, unsigned char bgcolor=0)
 backward compatibility interface for Pad.
Get Functions
StorageType * GetImageData ()
 overloaded GetImageData() from ImageBase
const StorageType * GetImageData () const
 overloaded GetImageData() from ImageBase
StorageType ** GetImageDataArray ()
 overloaded GetImageDataArray() from ImageBase
const StorageType ** GetImageDataArray () const
 overloaded GetImageDataArray() from ImageBase
StorageType GetMaxPixelValue (unsigned short int channel=0, unsigned int *coo=NULL) const
 Get the maximal pixel value if coo!=NULL the coo[0]=x of max and coo[1]=y of max.
void GetMeanPixelValue (StorageType mean[])
void GetMinMaxPixelValue (StorageType &min, StorageType &max, unsigned short int channel=0, unsigned int *mincoo=NULL, unsigned int *coo=NULL) const
 returns the minimal and maximal pixel value in channel only Finds minimum and maximum pixel value in image in channel only, i.e.
bool GetMinMaxPixelValueIgnoreRange (StorageType &min, StorageType &max, const StorageType ignoreStart=0, const StorageType ignoreEnd=0, const unsigned short int channel=0) const
 Get both, minimal and maximal pixel value --actual implementation only for planar images--.
StorageType GetMinPixelValue (unsigned short int channel=0, unsigned int *coo=NULL) const
 Get the minimal pixel value if coo!=NULL the coo[0]=x of min and coo[1]=y of min.
const StorageType & GetPixelNearestNeighbor (const float x, const float y, const unsigned short int channel=0) const
 Get the value of a specific channel offset of specific pixel nearest to given float coordinates, using the double version.
const StorageType & GetPixelNearestNeighbor (const double x, const double y, const unsigned short int channel=0) const
 Get the value of a specific channel offset of specific pixel nearest to given double coordinates.
StorageType PixelValue (const unsigned int x, const unsigned int y, const unsigned short int channel=0) const
 Returns value of pixel at specific position, using specific channel as offset.
StorageType PixelValueInterleaved (const int x, const int y, const int channel=0) const
 Returns value of pixel at specific position, using specific channel as offset.
StorageType & PixelValueRefInterleaved (const int x, const int y, const int channel=0)
 return pixel value at specified position as reference for read+write access.
Set functions
void InvalidateUID ()
 sets the image's uid to invalid
void SetBitDepth (unsigned bitdepth)
 needed by ImageIO
void SetColorModel (EColorModel Model)
void SetInterleaved (bool interleaved)
void SetUID (const BIAS::UUID &id)
Operators
Operators -,+,*,/,-=,+=,*=,/= for scalar and image arguments
Operators do only work for argument of the same type
Division Operators do zero checks (if BIAS_DEBUG is defined)

Image< StorageType > operator* (const Image< StorageType > &argimage)
 Operator * for another image as argument, returning a new image.
Image< StorageType > operator* (const StorageType &argimage)
 Operator * for scalar value, returning a new image.
Image< StorageType > & operator*= (const Image< StorageType > &argimage)
 Operator *= for another image as argument.
Image< StorageType > & operator*= (const StorageType &argimage)
 Operator *= for scalar value.
Image< StorageType > operator+ (const Image< StorageType > &argimage)
 Operator + for another image as argument, returning a new image.
Image< StorageType > operator+ (const StorageType &argimage)
 Operator + for scalar value, returning a new image.
Image< StorageType > & operator+= (const Image< StorageType > &argimage)
 Operator += for another image as argument.
Image< StorageType > & operator+= (const StorageType &argimage)
 Operator += for scalar value.
Image< StorageType > operator- (const Image< StorageType > &argimage)
 subtracts every from every pixel (in ROI if defined) the pixel value from argimage !!! negative results are clipped to zero !!!
Image< StorageType > operator- (const StorageType &argimage)
 Operator - for scalar value, returning a new image.
Image< StorageType > & operator-= (const Image< StorageType > &argimage)
 Operator -= for another image as argument.
Image< StorageType > & operator-= (const StorageType &argimage)
 Operator -= for scalar value.
Image< StorageType > operator/ (const Image< StorageType > &argimage)
 Operator / for another image as argument, returning a new image.
Image< StorageType > operator/ (const StorageType &argimage)
 Operator / for scalar value, returning a new image.
Image< StorageType > & operator/= (const Image< StorageType > &argimage)
 Operator /= for another image as argument.
Image< StorageType > & operator/= (const StorageType &argimage)
 Operator /= for scalar value.
Image< StorageType > & operator= (const ImageBase &Source)
 copies ImageBase to an desired Image<>, be careful with this, because u can do something like: Image<char> = Image<float>, what usualluy not makes sense
Image< StorageType > & operator| (const Image< StorageType > &argimage)
 logical Operator || operating pixel values with pixel values of another image, returning a new image
Operators
bool operator== (const ImageBase &img) const
 comparison operator, based upon the adresses of the actual image data

Static Public Member Functions

static long int GetGlobalDebugLevel ()
static void SetGlobalDebugLevel (long int lev)

Protected Member Functions

long ConsumeNextFreeDebuglevel_ ()
 returns the next available debuglevel
void SetStorageType (const EStorageType st)
 changes StorageType data mmeber
int UpdateImageDataArrayFromImageData_ ()
 recomputes pointer array returned by GetImageDataArray

Protected Attributes

long int _liDebugLevel
long int _liNextDebugLevel
 new concept, debuglevel are managed here in the debug class
MetaData _MetaData
 additional data block, handled by derived classes
std::map< std::string, long int > _String2Debuglevel
BIAS::UUID _UID
 unique id for every image
unsigned int BitDepth_
 relevant bits per pixel per channel
unsigned int ChannelCount_
 number of channels per pixel
enum EColorModel ColorModel_
 the color model of the pixels
unsigned int Depth_
 size of one channel of one pixel in bytes
unsigned int Height_
 image height in pixels
voidImageData_
 a pointer to the image data
void ** ImageDataArray_
 array of pointers to the first byte in an image row
bool InterleavedDataOrder_
 planar or interleaved: planar means we have several image planes, e.g.
ROI Roi_
 roi object
enum EStorageType StorageType_
 the storage type in a pixel channel
unsigned int Width_
 image width in pixels
unsigned int WidthStep_
 size of a line in bytes for interleaved, NOT nr . of pixels (but size a line in one plane for planar)

Static Protected Attributes

static std::ostream _zDebugStream
static long int GlobalDebugLevel = 0
static const int Version_ = VERSION_NUMBER
 version number of imagebase class


Detailed Description

template<class StorageType>
class BIAS::Image< StorageType >

The image template class for specific storage types.

The real image data is stored as an array of the specific storage type. You can get the pointer by GetImageData() while accessing the image data could also be more efficiently done by GetImageDataArray()[y][x], which gives t