OpenCV  4.1.0
Open Source Computer Vision
Public Member Functions | Static Public Member Functions | List of all members
cv::bioinspired::RetinaFastToneMapping Class Referenceabstract

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:
cv::Algorithm

Public Member Functions

virtual void applyFastToneMapping (InputArray inputImage, OutputArray outputToneMappedImage)=0
 applies a luminance correction (initially High Dynamic Range (HDR) tone mapping)
 
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
 
- Public Member Functions inherited from cv::Algorithm
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 Clears the algorithm state.
 
virtual bool empty () const
 Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read.
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 Reads algorithm parameters from a file storage.
 
virtual void save (const String &filename) const
 
virtual void write (FileStorage &fs) const
 Stores algorithm parameters in a file storage.
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 simplified API for language bindingsThis is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 

Static Public Member Functions

static Ptr< RetinaFastToneMappingcreate (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.
 
template<typename _Tp >
static Ptr< _Tp > loadFromString (const String &strModel, const String &objname=String())
 Loads algorithm from a String.
 
template<typename _Tp >
static Ptr< _Tp > read (const FileNode &fn)
 Reads algorithm from the file node.
 

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:

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

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
inputImagethe input image to process RGB or gray levels
outputToneMappedImagethe output tone mapped image
static Ptr<RetinaFastToneMapping> cv::bioinspired::RetinaFastToneMapping::create ( Size  inputSize)
static
Python:
retval=cv.bioinspired.RetinaFastToneMapping_create(inputSize)
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
photoreceptorsNeighborhoodRadiusthe first stage local adaptation area
ganglioncellsNeighborhoodRadiusthe second stage local adaptation area
meanLuminanceModulatorKthe factor applied to modulate the meanLuminance information (default is 1, see reference paper)

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