[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]

Public Types | Public Member Functions | List of all members
BrightnessContrastFunctor< PixelType > Class Template Reference

Adjust brightness and contrast of an image. More...

`#include <vigra/transformimage.hxx>`

## Public Types

typedef PixelType | argument_type
typedef PixelType | result_type
typedef PixelType | value_type

## Public Member Functions

| BrightnessContrastFunctor (promote_type brightness, promote_type contrast, argument_type const &min, argument_type const &max)
result_type | operator() (argument_type const &v) const

## Detailed Description

template<class PixelType>
class vigra::BrightnessContrastFunctor< PixelType >

Adjust brightness and contrast of an image.

This functor applies a gamma correction to each pixel in order to modify the brightness of the image. To the result of the gamma correction, another transform is applied that modifies the contrast. The brightness and contrast parameters must be positive. Values greater than 1 will increase image brightness or contrast respectively, values smaller than 1 decrease them. A value of exactly 1 will have no effect. If contrast is set to 1, the result is equivalent to that of the GammaFunctor with gamma = 1./brightness.

For RGBValue's, the transforms are applied component-wise. The pixel values are assumed to lie between the given minimum and maximum values (in case of RGB, this is again understood component-wise). In case of unsigned char, min and max default to 0 and 255 respectively. Precisely, the following transform is applied to each PixelValue:

If the PixelType is unsigned char, a look-up-table is used for faster computation.

Traits defined:

FunctorTraits::isUnaryFunctor is true (VigraTrueType)

Usage:

#include <vigra/transformimage.hxx>
Namespace: vigra

vigra::BImage bimage(width, height);
double brightness, contrast;
...
vigra::transformImage(srcImageRange(bimage), destImage(bimage),
vigra::BrightnessContrastFunctor<unsigned char>(brightness, contrast));
vigra::FImage fimage(width, height);
...
vigra::FindMinMax<float> minmax;
vigra::inspectImage(srcImageRange(fimage), minmax);
vigra::transformImage(srcImageRange(fimage), destImage(fimage),
vigra::BrightnessContrastFunctor<float>(brightness, contrast, minmax.min, minmax.max));
vigra::BrightnessContrastFunctor
Adjust brightness and contrast of an image.
Definition transformimage.hxx:1105
vigra::transformImage
void transformImage(...)
Apply unary point transformation to each pixel.
vigra::FImage
BasicImage< float > FImage
Definition stdimage.hxx:143
vigra::inspectImage
void inspectImage(...)
Apply read-only functor to every pixel in the image.
vigra::BImage
BasicImage< UInt8 > BImage
Definition stdimage.hxx:62

Required Interface:

Scalar types: must be a linear algebra (+, - *, NumericTraits), strict weakly ordered (<), and pow() must be defined.

RGB values: the component type must meet the above requirements.

## Member Typedef Documentation

## ◆ argument_type

template<class PixelType>

typedef PixelType argument_type

the functor's argument type

## ◆ result_type

template<class PixelType>

typedef PixelType result_type

the functor's result type

## ◆ value_type

template<class PixelType>

typedef PixelType value_type

Deprecated
  use argument_type and result_type

## Constructor & Destructor Documentation

## ◆ BrightnessContrastFunctor()

template<class PixelType>

BrightnessContrastFunctor | ( | promote_type | brightness,
|  | promote_type | contrast,
|  | argument_type const & | min,
|  | argument_type const & | max )

Init functor for argument range [min, max]. brightness and contrast values > 1 will increase brightness and contrast, < 1 will decrease them, and == 1 means no change.

## Member Function Documentation

## ◆ operator()()

template<class PixelType>

result_type operator() | ( | argument_type const & | v | ) | const

Calculate modified gray or color value

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

- vigra/transformimage.hxx

© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de) Heidelberg Collaboratory for Image Processing, University of Heidelberg, Germany | html generated using doxygen and Python vigra 1.12.4