Public Member Functions | List of all members
Image Class Reference

Class for multi-channel digital images. Supports dynamic typing with base types (char, int, float). More...

#include <Image.h>

Inheritance diagram for Image:
Inheritance graph
[legend]
Collaboration diagram for Image:
Collaboration graph
[legend]

Public Member Functions

 Image (const std::type_info &t=typeid(unsigned char), const Geometry &g=Geometry())
 The constructor for an empty image.
 
 Image (const std::type_info &t, size_t width, size_t height, size_t channelCount=1, size_t alphaChannelCount=0)
 The constructor for an image of given type and size.
 
 Image (size_t width, size_t height, size_t channelCount=1, size_t alphaChannelCount=0)
 The constructor for unsigned char image of given size.
 
 Image (const Image &image)
 Copies the geometry of another image.
 
 Image (const ImageFrame &image)
 Copies the geometry of another image.
 
 Image (const ImageConf &conf)
 Copies the geometry of another image.
 
 operator const Channel & () const
 
 operator Channel & ()
 
void setType (const std::type_info &type)
 Sets the storage type of the image - typically unsigned char, unsigned int or float.
 
template<class T >
void setType ()
 Sets the storage type of the image - typically unsigned char, unsigned int or float.
 
template<class T >
void setType (const T &t)
 Sets type of the image, applying character mapping of Type::setType(char c) . TODO: drain::Type.
 
void copyShallow (const ImageFrame &src)
 Copies type, geometry and coordinate under/overflow policy of the given image. Does not copy the data.
 
void copyDeep (const ImageFrame &src)
 Copies the type, geometry, coordinate policy and data of the given image.
 
void dump (std::ostream &ostr=std::cout) const
 Prints images geometry, buffer size and type information, and dumps the array contents. Consider toOStr...
 
void adoptScaling (const ImageConf &src, const std::type_info &t=typeid(void))
 
void swap (Image &img)
 
- Public Member Functions inherited from ModifiableImage
virtual const ImageConfgetConf () const
 
void setConf (const ImageConf &conf)
 
virtual void setGeometry (size_t width, size_t height, size_t imageChannels=1, size_t alphaChannels=0)
 Resizes the image, keeps the current type. More...
 
void setGeometry (const AreaGeometry &g, size_t imageChannels=1, size_t alphaChannels=0)
 Resizes the image, keeps the current type. More...
 
void setGeometry (const AreaGeometry &areaGeom, const ChannelGeometry &channelGeom)
 
void setGeometry (const Geometry &g)
 Resizes the image, keeps the current type. More...
 
void resetGeometry ()
 Collapses the image to undetectValue size, releasing memory. More...
 
void setChannelCount (size_t ni, size_t na=0)
 
void setAlphaChannelCount (size_t k)
 
virtual void initialize (const std::type_info &t, const Geometry &g)
 Sets the type and allocates a data buffer.
 
virtual void initialize (const std::type_info &t, size_t width, size_t height, size_t imageChannels=1, size_t alphaChannels=0)
 Sets the type and allocates a data buffer.
 
- Public Member Functions inherited from MultiChannel
 MultiChannel (const MultiChannel &img)
 
ChannelgetChannel (size_t i)
 
const ChannelgetChannel (size_t i) const
 
ChannelgetAlphaChannel (size_t i=0)
 
const ChannelgetAlphaChannel (size_t i=0) const
 
const std::vector< ChannelView > & getChannelVector () const
 
- Public Member Functions inherited from ImageFrame
 ImageFrame (const ImageFrame &src)
 
void setPhysicalRange (const Range< double > &range, bool rescale=false)
 Sets the supported range for physical values and optionally adjusts the scaling for maximal resolution.
 
void setPhysicalRange (double min, double max, bool rescale=false)
 Sets the supported range for physical values and optionally adjusts the scaling for maximal resolution.
 
const iteratorbegin ()
 Returns iterator pointing to the first image element.
 
const iteratorend ()
 Returns the iterator pointing to the element after the last element of the image buffer.
 
const const_iteratorbegin () const
 Returns iterator pointing to the first image element.
 
const const_iteratorend () const
 Returns the iterator pointing to the element after the last element of the image buffer.
 
size_t address (size_t i) const
 Computes the index location from image coordinates. Does not involve bit resolution. More...
 
size_t address (size_t i, size_t j) const
 Computes the index location from image coordinates. Does not involve bit resolution. More...
 
size_t address (size_t i, size_t j, size_t k) const
 Computes the index location from image coordinates. Does not involve bit resolution. More...
 
const void * getBuffer () const
 Returns the pointer to the start of the image array. More...
 
void * getBuffer ()
 Returns the pointer to the start of the image array. More...
 
template<class T >
void put (size_t i, T x)
 Sets the intensity in location i to x. See \address. More...
 
template<class T >
void put (size_t i, size_t j, T x)
 Sets the intensity at location i,j to x. See address(). More...
 
template<class T >
void put (size_t i, size_t j, size_t k, T x)
 Sets the intensity at location i,j,k to x. More...
 
template<class T , class P >
void put (const Point2D< P > &p, T x)
 Gets the intensity at location p=(i,j) . More...
 
void putScaled (size_t i, size_t j, double x)
 Put intensity using original physical value. More...
 
template<class T >
get (size_t i) const
 Gets the intensity at location i. See address(). More...
 
template<class T >
get (size_t i, size_t j) const
 Gets the intensity at location i,j . More...
 
template<class T >
get (size_t i, size_t j, size_t k) const
 Gets the intensity at location i,j,k . More...
 
double getScaled (size_t i, size_t j) const
 Get intensity in original physical scale. More...
 
template<class T , class P >
get (const Point2D< P > &p) const
 Gets the intensity at location p=(i,j) . More...
 
template<class T , class P >
void putPixel (const Point2D< P > &p, const std::vector< T > &pixel) const
 
template<class T , class P >
void getPixel (const Point2D< P > &p, std::vector< T > &pixel) const
 
void clear ()
 Sets the intensities to zero. Does not change image geometry. See resetGeometry().
 
template<class T >
void fill (T x)
 Sets the intensities to given value. Does not change image geometry.
 
void copyData (const ImageFrame &src)
 Copies data. Does not change encoding, geometry, or coordinate policy.
 
bool hasOverlap (const ImageFrame &image) const
 Checks if images have a common memory segment.
 
bool hasSameSegment (const ImageFrame &image) const
 Return true, if both frames have same type and are using the same data segment. More...
 
virtual const FlexVariableMapgetProperties () const
 
void setName (const std::string &s)
 
const std::string & getName () const
 
void toStream (std::ostream &ostr=std::cout) const
 Prints images geometry, buffer size and type information.
 
- Public Member Functions inherited from ImageLike
 ImageLike (const ImageLike &image)
 
const std::type_info & getType () const
 Get the storage type.
 
bool typeIsSet () const
 
virtual const GeometrygetGeometry () const
 
size_t getWidth () const
 
size_t getHeight () const
 
size_t getArea () const
 
size_t getChannelCount () const
 
const size_t getImageChannelCount () const
 
const size_t getAlphaChannelCount () const
 
bool hasAlphaChannel () const
 
size_t getVolume () const
 
bool isEmpty () const
 
const CoordinatePolicygetCoordinatePolicy () const
 Coord policy.
 
CoordinatePolicygetCoordinatePolicy ()
 Coord policy.
 
template<class T >
void setCoordinatePolicy (const T &policy)
 
void setCoordinatePolicy (EdgePolicy::index_t xUnderFlowPolicy, EdgePolicy::index_t yUnderFlowPolicy, EdgePolicy::index_t xOverFlowPolicy, EdgePolicy::index_t yOverFlowPolicy)
 
virtual const drain::ValueScalinggetScaling () const
 
virtual drain::ValueScalinggetScaling ()
 
virtual void setScaling (const drain::ValueScaling &scaling)
 
virtual void setScaling (double scale, double offset)
 
template<class T >
drain::typeLimiter< T >::value_t getLimiter () const
 

Additional Inherited Members

- Public Types inherited from ImageFrame
typedef CastableIterator const_iterator
 
typedef CastableIterator iterator
 
- Public Attributes inherited from ImageFrame
FlexVariableMap properties
 Container for user-defined KEY=VALUE metadata.
 
- Protected Member Functions inherited from MultiChannel
void updateChannelVector () const
 Updates channel vector. Copies scaling of the host image. More...
 
- Protected Member Functions inherited from ImageFrame
void init ()
 
void adjustBuffer ()
 Resize data buffer to match the geometry.
 
void setStorageType (const std::type_info &type)
 Sets the storage type of the image - typically unsigned char, unsigned int or float. Calls setDefaultLimits().
 
void unsetType ()
 
void setView (const ImageFrame &src, size_t channelStart, size_t channelCount, bool catenate=false)
 Sets the image to view the data and scaling of another image. More...
 
bool isView () const
 Returns true, if the image "points to" another image. For example, channels are views.
 
template<class T >
T * retrieve (size_t a)
 
template<class T >
const T * retrieve (size_t a) const
 
- Protected Attributes inherited from MultiChannel
std::vector< ChannelViewchannelVector
 
- Protected Attributes inherited from ImageFrame
unsigned char * bufferPtr
 
iterator segmentBegin
 
iterator segmentEnd
 
FlexVariableMap const * propertiesPtr
 
std::string name
 
std::vector< unsigned char > buffer
 
- Protected Attributes inherited from ImageLike
ImageConf conf
 

Detailed Description

Class for multi-channel digital images. Supports dynamic typing with base types (char, int, float).

Contains an internal buffer for image data. The buffer is essentially a std::vector<char>. The size of the buffer is dynamically adjusted to the dimensions and bit resolution of the image.

Also, supports STL style iterators.


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