|
Class for multi-channel digital images. Supports dynamic typing with base types (char, int, float). More...
#include <Image.h>
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 ImageConf & | getConf () 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) | |
Channel & | getChannel (size_t i) |
const Channel & | getChannel (size_t i) const |
Channel & | getAlphaChannel (size_t i=0) |
const Channel & | getAlphaChannel (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 iterator & | begin () |
Returns iterator pointing to the first image element. | |
const iterator & | end () |
Returns the iterator pointing to the element after the last element of the image buffer. | |
const const_iterator & | begin () const |
Returns iterator pointing to the first image element. | |
const const_iterator & | end () 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 > | |
T | get (size_t i) const |
Gets the intensity at location i . See address(). More... | |
template<class T > | |
T | get (size_t i, size_t j) const |
Gets the intensity at location i ,j . More... | |
template<class T > | |
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 > | |
T | 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 FlexVariableMap & | getProperties () 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 Geometry & | getGeometry () 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 CoordinatePolicy & | getCoordinatePolicy () const |
Coord policy. | |
CoordinatePolicy & | getCoordinatePolicy () |
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::ValueScaling & | getScaling () const |
virtual drain::ValueScaling & | getScaling () |
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< ChannelView > | channelVector |
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 |
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.