Package org.opencv.bioinspired
Class RetinaFastToneMapping
- java.lang.Object
-
- org.opencv.core.Algorithm
-
- org.opencv.bioinspired.RetinaFastToneMapping
-
public class RetinaFastToneMapping extends Algorithm
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.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
RetinaFastToneMapping(long addr)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static RetinaFastToneMapping
__fromPtr__(long addr)
void
applyFastToneMapping(Mat inputImage, Mat 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.static RetinaFastToneMapping
create(Size inputSize)
protected void
finalize()
void
setup()
updates tone mapping behaviors by adjusing the local luminance computation area (default is 1, see reference paper)void
setup(float photoreceptorsNeighborhoodRadius)
updates tone mapping behaviors by adjusing the local luminance computation areavoid
setup(float photoreceptorsNeighborhoodRadius, float ganglioncellsNeighborhoodRadius)
updates tone mapping behaviors by adjusing the local luminance computation areavoid
setup(float photoreceptorsNeighborhoodRadius, float ganglioncellsNeighborhoodRadius, float meanLuminanceModulatorK)
updates tone mapping behaviors by adjusing the local luminance computation area-
Methods inherited from class org.opencv.core.Algorithm
clear, empty, getDefaultName, getNativeObjAddr, save
-
-
-
-
Method Detail
-
__fromPtr__
public static RetinaFastToneMapping __fromPtr__(long addr)
-
applyFastToneMapping
public void applyFastToneMapping(Mat inputImage, Mat 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 levelsoutputToneMappedImage
- the output tone mapped image
-
setup
public void setup(float photoreceptorsNeighborhoodRadius, float ganglioncellsNeighborhoodRadius, float meanLuminanceModulatorK)
updates tone mapping behaviors by adjusing the local luminance computation area- Parameters:
photoreceptorsNeighborhoodRadius
- the first stage local adaptation areaganglioncellsNeighborhoodRadius
- the second stage local adaptation areameanLuminanceModulatorK
- the factor applied to modulate the meanLuminance information (default is 1, see reference paper)
-
setup
public void setup(float photoreceptorsNeighborhoodRadius, float ganglioncellsNeighborhoodRadius)
updates tone mapping behaviors by adjusing the local luminance computation area- Parameters:
photoreceptorsNeighborhoodRadius
- the first stage local adaptation areaganglioncellsNeighborhoodRadius
- the second stage local adaptation area (default is 1, see reference paper)
-
setup
public void setup(float photoreceptorsNeighborhoodRadius)
updates tone mapping behaviors by adjusing the local luminance computation area- Parameters:
photoreceptorsNeighborhoodRadius
- the first stage local adaptation area (default is 1, see reference paper)
-
setup
public void setup()
updates tone mapping behaviors by adjusing the local luminance computation area (default is 1, see reference paper)
-
create
public static RetinaFastToneMapping create(Size inputSize)
-
-