Image Module


Classes

class  imaging::CastAccessor< image_t, DATA_t >
 Provides casted pixel data type access to images. More...
class  imaging::Color
 Class for 24-bit color values. More...
class  imaging::GrayValue
 Class for 8-bit grayscale values. More...
class  imaging::Image< N, DATA_t >
 Stores image data of arbitrary dimension and pixel type. More...
class  imaging::ImageAccessorInterface< image_t, DATA_t >
 Abstract base class of all image accessor classes. More...
class  imaging::ImageInterface< N, DATA_t >
 Abstract base class of all classes modelling image data. More...
class  imaging::InterpolationAdaptorInterface< image_t >
 Abstract base class of image interpolation function which provide pixel values in floating point coordinates. More...
class  imaging::PolynomialInterpolationAdaptor< image_t >
 Polynomial interpolation of image values at floating point coordinates. More...
class  imaging::ScalarImage< N, DATA_t >
 Image with constant pixel values. More...
class  imaging::ScalingAccessor< float_accessor_t >
 Provides access to rescaled floating point images. More...
class  imaging::VectorComponentAccessor< vector_image_t >
 Provides access to different channels of vector valued image data. More...

Typedefs

typedef Image< 2, Color > imaging::ColorImage2d
 2-dimensional color image.
typedef Image< 2, GrayValue > imaging::GrayImage2d
 2-dimensional grayscale image.
typedef Image< 3, GrayValue > imaging::GrayImage3d
 3-dimensional grayscale image.

Functions

template<size_t N, class DATA_t>
std::ostream & imaging::operator<< (std::ostream &out, const ImageInterface< N, DATA_t > &image)
std::ostream & imaging::operator<< (std::ostream &out, const GrayValue value)
std::ostream & imaging::operator<< (std::ostream &out, const Color &value)
std::istream & imaging::operator>> (std::istream &in, GrayValue &value)
std::istream & imaging::operator>> (std::istream &in, Color &value)
GraphicsInterface & imaging::operator<< (GraphicsInterface &out, const ColorImage2d &image)
template<class float_accessor_t, class vector_accessor_t>
void imaging::compute_divergence_field (const float_accessor_t &image, vector_accessor_t &out)
template<class image_t>
void imaging::blur (image_t &image, float_t width, float_t sigma)
template<class image_t>
void imaging::edge (image_t &image, float_t radius)
template<class image_t>
void imaging::absolute_gradient (image_t &image)
template<class image_t>
image_t::data_t imaging::max (const image_t &image)
template<class image_t>
image_t::data_t imaging::min (const image_t &image)
template<class image_t>
bool imaging::is_pixel (const image_t &image, const ublas::fixed_vector< size_t, image_t::dimension > &index)
void imaging::draw_level_set (const Image< 2, float_t > &level_set_function, const float_t &level, const Color &color, ColorImage2d &image)
void imaging::image2matrix (const Image< 2, float_t > &image, ublas::matrix< float_t > &matrix)

Detailed Description

The image module provides a template class for n-dimensional image data and specialized members to read and write 2-dimensional image data. Furthermore, the concept of accessor classes allows to apply simple transformations to images on the fly or efficiently access channels of vector valued image data. For 2D image data, several functions of the ImageMagick library are interfaced.

Typedef Documentation

typedef Image<2, Color> imaging::ColorImage2d

2-dimensional color image.

#include <image/Color.hpp>

Abbreviated notation for 2-dimensional color images. The colors values are stored with 24 bit precision. i.e. each pixel is represented by 3 (red, green, blue) integer values 0-255.

See also:
Color

typedef Image<2, GrayValue> imaging::GrayImage2d

2-dimensional grayscale image.

#include <image/GrayValue.hpp>

Abbreviated notation for 2-dimensional grayscale images. The gray values are stored with 8 bit precision. i.e. each pixel is represented by an integer value 0-255.

See also:
GrayValue

typedef Image<3, GrayValue> imaging::GrayImage3d

3-dimensional grayscale image.

#include <image/GrayValue.hpp>

Abbreviated notation for 3-dimensional grayscale images. The gray values are stored with 8 bit precision. i.e. each pixel is represented by an integer value 0-255.

See also:
GrayValue


Function Documentation

template<class image_t>
void imaging::absolute_gradient ( image_t &  image  )  [inline]

#include <image/utilities.hpp>

Computes the absolute value of the gradient of image in the following way:

  • the gradient of the inner pixels of image is computed using symmetric finite differences,
  • the inner pixels of image are set to the absolute value of the gradients computed in the previous step,
  • the values of the boundary pixels (excluding the pixels in the corners) image are set to the values of the neighboring inner pixels,
  • the values of the boundary pixels are set to the mean of the values in the neighboring pixels. This is implemented for 2-dimensional images only, but the above procedure generalizes to higher dimensions (somebody must implement it, though).

template<class image_t>
void imaging::blur ( image_t &  image,
float_t  width,
float_t  sigma 
) [inline]

#include <image/utilities.hpp>

Blurs image by convoluting it with a Gaussian kernel with standard deviation sigma (in pixels). The parameter width determines the radius of the kernel in pixels. This function is currently implemented for 2-dimensional images only (using ImageMagick).

template<class float_accessor_t, class vector_accessor_t>
void imaging::compute_divergence_field ( const float_accessor_t &  image,
vector_accessor_t &  out 
) [inline]

#include <image/utilities.hpp>

Computes a vector field out such that the divergence of out equals the scalar input image. If we denote $f$ and out as $\vec F$ then this means that

\[ \nabla \cdot \vec F = f\,. \]

This is done by setting

\[ \vec F_n(x_1, \ldots, x_n, \ldots, x_N) = \frac1N \int_0^{x_n}f(x_1, \ldots, \xi, \ldots, x_N) d\xi\,, \]

where $N$ denotes the dimension of image.

The dimension of image must equal the number of components of each pixel in out.

References imaging::increment_index().

Referenced by imaging::MumfordShahEnergy< shape_t >::MumfordShahEnergy().

void imaging::draw_level_set ( const Image< 2, float_t > &  level_set_function,
const float_t &  level,
const Color &  color,
ColorImage2d &  image 
)

#include <image/utilities.hpp>

Draws the level line of level_set_function defined by level onto image using color. Implemented for 2-dimensional images only.

References imaging::Image< N, DATA_t >::size().

template<class image_t>
void imaging::edge ( image_t &  image,
float_t  radius 
) [inline]

#include <image/utilities.hpp>

Calls the edge function of ImageMagick. No idea what it does. Implemented for 2-dimensional images only.

void imaging::image2matrix ( const Image< 2, float_t > &  image,
ublas::matrix< float_t > &  matrix 
)

#include <image/utilities.hpp>

Converts the 2-dimensional image to matrix.

References imaging::Image< N, DATA_t >::size().

template<class image_t>
bool imaging::is_pixel ( const image_t &  image,
const ublas::fixed_vector< size_t, image_t::dimension > &  index 
) [inline]

#include <image/utilities.hpp>

Returns true if the pixel defined by index is within the bounds of image and false otherwise.

template<class image_t>
image_t::data_t imaging::max ( const image_t &  image  )  [inline]

#include <image/utilities.hpp>

Computes the maximal pixel value of image. The class image_t must implement ImageInterface and image_t::data_t must be comparable.

References imaging::increment_index().

template<class image_t>
image_t::data_t imaging::min ( const image_t &  image  )  [inline]

#include <image/utilities.hpp>

Computes the minimal pixel value of image. The class image_t must implement ImageInterface and image_t::data_t must be comparable.

References imaging::increment_index().

GraphicsInterface & imaging::operator<< ( GraphicsInterface &  out,
const ColorImage2d &  image 
)

#include <image/gio.hpp>

Draws image in the graphics output. The lower left corner of the image will be located at the origin (0, 0) and the upper right corner at (image.size()(0), image.size()(1)). In other words, this functions assumes the axes system of the graphics output to be scaled to pixel size.

References imaging::GraphicsInterface::image(), and imaging::Image< N, DATA_t >::size().

std::ostream & imaging::operator<< ( std::ostream &  out,
const Color &  value 
)

#include <image/cio.hpp>

std::ostream & imaging::operator<< ( std::ostream &  out,
const GrayValue  value 
)

#include <image/cio.hpp>

template<size_t N, class DATA_t>
std::ostream& imaging::operator<< ( std::ostream &  out,
const ImageInterface< N, DATA_t > &  image 
) [inline]

#include <image/cio.hpp>

std::istream & imaging::operator>> ( std::istream &  in,
Color &  value 
)

#include <image/cio.hpp>

std::istream & imaging::operator>> ( std::istream &  in,
GrayValue &  value 
)

#include <image/cio.hpp>


Generated on Tue Feb 10 10:01:31 2009 for imaging2 by  doxygen 1.5.5