CVD::Image< T > Class Template Reference
[Image storage and manipulation]

#include <image.h>

Inheritance diagram for CVD::Image< T >:

CVD::BasicImage< T > CVD::SubImage< T >

List of all members.


Detailed Description

template<class T>
class CVD::Image< T >

A full image which manages its own data.

Parameters:
T The pixel type for this image. Typically either CVD::byte or CVD::Rgb<CVD::byte> > are used, but images could be constructed of any available type.
Images do reference counting on the data, so multiple images can point to one block of data. This means that copying an image is like copying a pointer (so use the same care); to further the analogy, operator[]() dereferences images. Copy constructing is quite fast (a 16-byte copy and an increment), so images can be efficiently passed back in functions or used in containers like std::vector

Loading and saving, format conversion and some copying functionality is provided by external functions rather than as part of this class. See the Image loading and saving, and format conversion module for documentation of these functions.

Definition at line 643 of file image.h.


Public Member Functions

 Image (const Image &copy)
 Image (const CopyPlaceHolder &c)
CopyPlaceHolder copy_from_me () const
void copy_from (const BasicImage< T > &copy)
void copy_from (const SubImage< T > &copy)
void make_unique ()
const Imageoperator= (const Image &copyof)
 Image ()
 Image (const ImageRef &size)
 Image (const ImageRef &size, const T &val)
 Image (const std::pair< ImageRef, T > &p)
void resize (const ImageRef &size)
void resize (const ImageRef &size, const T &val)
 ~Image ()

Classes

struct  CopyPlaceHolder

Constructor & Destructor Documentation

template<class T>
CVD::Image< T >::Image ( const Image< T > &  copy  )  [inline]

Copy constructor.

This does not copy the data, it just creates a new reference to the image data

Parameters:
copy The image to copy

Definition at line 655 of file image.h.

template<class T>
CVD::Image< T >::Image ( const CopyPlaceHolder &  c  )  [inline]

CopyFrom" constructor.

If constructed from this, it creates a new copy of the data. This provides symmetry with copy_from_me

Parameters:
c The (placeholder) image to copy from.

Definition at line 667 of file image.h.

template<class T>
CVD::Image< T >::Image (  )  [inline]

Default constructor.

Definition at line 739 of file image.h.

template<class T>
CVD::Image< T >::Image ( const ImageRef size  )  [inline]

Create an empty image of a given size.

Parameters:
size The size of image to create

Definition at line 746 of file image.h.

template<class T>
CVD::Image< T >::Image ( const ImageRef size,
const T &  val 
) [inline]

Create a filled image of a given size.

Parameters:
size The size of image to create
val The value to fill the image with

Definition at line 758 of file image.h.

template<class T>
CVD::Image< T >::Image ( const std::pair< ImageRef, T > &  p  )  [inline]

Create a filled image of a given size.

Parameters:
p std::pair<ImageRef, T> containing the size and fill value. Useful for creating containers of images with ImageCreationIterator

Definition at line 768 of file image.h.

template<class T>
CVD::Image< T >::~Image (  )  [inline]

The destructor removes the image data.

Definition at line 803 of file image.h.


Member Function Documentation

template<class T>
CopyPlaceHolder CVD::Image< T >::copy_from_me (  )  const [inline]

This returns a place holder from which an image can be constructed.

On construction, a new copy of the data is made.

Definition at line 675 of file image.h.

template<class T>
void CVD::Image< T >::copy_from ( const BasicImage< T > &  copy  )  [inline]

Make a (new) copy of the image, also making a copy of the data.

Parameters:
copy The image to copy

Definition at line 684 of file image.h.

Referenced by CVD::Image< CVD::Rgb< unsigned char > >::Image(), and CVD::Image< CVD::Rgb< unsigned char > >::make_unique().

template<class T>
void CVD::Image< T >::copy_from ( const SubImage< T > &  copy  )  [inline]

Make a (new) copy of the image, also making a copy of the data.

Parameters:
copy The image to copy

Definition at line 695 of file image.h.

template<class T>
void CVD::Image< T >::make_unique (  )  [inline]

Make this image independent of any copies (i.e. force a copy of the image data).

Definition at line 705 of file image.h.

template<class T>
const Image& CVD::Image< T >::operator= ( const Image< T > &  copyof  )  [inline]

Assign this image to another one.

This does not copy the data, it just creates a new reference to the image data

Parameters:
copyof The image to copy

Definition at line 717 of file image.h.

template<class T>
void CVD::Image< T >::resize ( const ImageRef size  )  [inline]

Resize the image (destroying the data).

This does not affect any other images pointing to this data.

Parameters:
size The new size of the image

Definition at line 778 of file image.h.

Referenced by CVD::Image< CVD::Rgb< unsigned char > >::copy_from(), and CVD::joinImages().

template<class T>
void CVD::Image< T >::resize ( const ImageRef size,
const T &  val 
) [inline]

Resize the image (destroying the data).

This does not affect any other images pointing to this data.

Parameters:
size The new size of the image
val The value to fill the image with

Definition at line 792 of file image.h.


The documentation for this class was generated from the following file:
Generated on Wed Feb 18 10:23:07 2009 for CVD by  doxygen 1.5.3