| OpenCV 3.4.8 Open Source Computer Vision

Public Member Functions | Static Public Member Functions | List of all members
cv::bioinspired::RetinaFastToneMapping Class Referenceabstract
Biologically inspired vision models and derivated tools

a wrapper class which allows the tone mapping algorithm of Meylan&al(2007) to be used with OpenCV. More...

`#include <opencv2/bioinspired/retinafasttonemapping.hpp>`

Inheritance diagram for cv::bioinspired::RetinaFastToneMapping:

## Public Member Functions
virtual void | applyFastToneMapping (InputArray inputImage, OutputArray outputToneMappedImage)=0
| applies a luminance correction (initially High Dynamic Range (HDR) tone mapping) More...
virtual void | setup (const float photoreceptorsNeighborhoodRadius=3.f, const float ganglioncellsNeighborhoodRadius=1.f, const float meanLuminanceModulatorK=1.f)=0
| updates tone mapping behaviors by adjusing the local luminance computation area More...
Public Member Functions inherited from cv::Algorithm
| Algorithm ()
virtual | ~Algorithm ()
virtual void | clear ()
| Clears the algorithm state. More...
virtual bool | empty () const
| Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. More...
virtual String | getDefaultName () const
virtual void | read (const FileNode &fn)
| Reads algorithm parameters from a file storage. More...
virtual void | save (const String &filename) const
virtual void | write (FileStorage &fs) const
| Stores algorithm parameters in a file storage. More...
void | write (const Ptr< FileStorage > &fs, const String &name=String()) const
| simplified API for language bindings This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...

## Static Public Member Functions
static Ptr< RetinaFastToneMapping > | create (Size inputSize)
Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tp > | load (const String &filename, const String &objname=String())
| Loads algorithm from the file. More...
template<typename _Tp >
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String())
| Loads algorithm from a String. More...
template<typename _Tp >
static Ptr< _Tp > | read (const FileNode &fn)
| Reads algorithm from the file node. More...

## Additional Inherited Members
Protected Member Functions inherited from cv::Algorithm
void | writeFormat (FileStorage &fs) const

## Detailed Description

a wrapper class which allows the tone mapping algorithm of Meylan&al(2007) to be used with OpenCV.

This algorithm is already implemented in thre Retina class (retina::applyFastToneMapping) but used it does not require all the retina model to be allocated. This allows a light memory use for low memory devices (smartphones, etc. As a summary, these are the model properties:

- 2 stages of local luminance adaptation with a different local neighborhood for each.
- first stage models the retina photorecetors local luminance adaptation
- second stage models th ganglion cells local information adaptation
- compared to the initial publication, this class uses spatio-temporal low pass filters instead of spatial only filters. this can help noise robustness and temporal stability for video sequence use cases.

for more information, read to the following papers : Meylan L., Alleysson D., and Susstrunk S., A Model of Retinal Local Adaptation for the Tone Mapping of Color Filter Array Images, Journal of Optical Society of America, A, Vol. 24, N 9, September, 1st, 2007, pp. 2807-2816Benoit A., Caplier A., Durette B., Herault, J., "USING HUMAN VISUAL SYSTEM MODELING FOR BIO-INSPIRED LOW LEVEL IMAGE PROCESSING", Elsevier, Computer Vision and Image Understanding 114 (2010), pp. 758-773, DOI: http://dx.doi.org/10.1016/j.cviu.2010.01.011 regarding spatio-temporal filter and the bigger retina model : Vision: Images, Signals and Neural Networks: Models of Neural Processing in Visual Perception (Progress in Neural Processing),By: Jeanny Herault, ISBN: 9814273686. WAPI (Tower ID): 113266891.

## Member Function Documentation

## § applyFastToneMapping()

virtual void cv::bioinspired::RetinaFastToneMapping::applyFastToneMapping | ( | InputArray | inputImage,
|  | OutputArray | outputToneMappedImage
| ) |  |
| pure virtual

Python:
| outputToneMappedImage | = | cv.bioinspired_RetinaFastToneMapping.applyFastToneMapping( | inputImage[, outputToneMappedImage] | )

applies a luminance correction (initially High Dynamic Range (HDR) tone mapping)

using only the 2 local adaptation stages of the retina parvocellular channel : photoreceptors level and ganlion cells level. Spatio temporal filtering is applied but limited to temporal smoothing and eventually high frequencies attenuation. This is a lighter method than the one available using the regular retina::run method. It is then faster but it does not include complete temporal filtering nor retina spectral whitening. Then, it can have a more limited effect on images with a very high dynamic range. This is an adptation of the original still image HDR tone mapping algorithm of David Alleyson, Sabine Susstruck and Laurence Meylan's work, please cite: -> Meylan L., Alleysson D., and Susstrunk S., A Model of Retinal Local Adaptation for the Tone Mapping of Color Filter Array Images, Journal of Optical Society of America, A, Vol. 24, N 9, September, 1st, 2007, pp. 2807-2816

Parameters

  inputImage | the input image to process RGB or gray levels
  outputToneMappedImage | the output tone mapped image

## § create()

static Ptr<RetinaFastToneMapping> cv::bioinspired::RetinaFastToneMapping::create | ( | Size | inputSize | ) |
| static

Python:
| retval | = | cv.bioinspired.RetinaFastToneMapping_create( | inputSize | )

## § setup()

virtual void cv::bioinspired::RetinaFastToneMapping::setup | ( | const float | photoreceptorsNeighborhoodRadius = `3.f`,
|  | const float | ganglioncellsNeighborhoodRadius = `1.f`,
|  | const float | meanLuminanceModulatorK = `1.f`
| ) |  |
| pure virtual

Python:
| None | = | cv.bioinspired_RetinaFastToneMapping.setup( | [, photoreceptorsNeighborhoodRadius[, ganglioncellsNeighborhoodRadius[, meanLuminanceModulatorK]]] | )

updates tone mapping behaviors by adjusing the local luminance computation area

Parameters

  photoreceptorsNeighborhoodRadius | the first stage local adaptation area
  ganglioncellsNeighborhoodRadius | the second stage local adaptation area
  meanLuminanceModulatorK | the factor applied to modulate the meanLuminance information (default is 1, see reference paper)

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

- opencv2/bioinspired/retinafasttonemapping.hpp