class RetinaParameters { struct OPLandIplParvoParameters { // Outer Plexiform Layer (OPL) and Inner Plexiform Layer Parvocellular (IplParvo) parameters OPLandIplParvoParameters () : colorMode ( true ), normaliseOutput ( true ), // specifies if (true) output is rescaled between 0 and 255 of not (false) photoreceptorsLocalAdaptationSensitivity ( 0.7f ), // the photoreceptors sensitivity renage is 0-1 (more log compression effect when value increases) photoreceptorsTemporalConstant ( 0.5f ), // the time constant of the first order low pass filter of the photoreceptors, use it to cut high temporal frequencies (noise or fast motion), unit is frames, typical value is 1 frame photoreceptorsSpatialConstant ( 0.53f ), // the spatial constant of the first order low pass filter of the photoreceptors, use it to cut high spatial frequencies (noise or thick contours), unit is pixels, typical value is 1 pixel horizontalCellsGain ( 0.0f ), //gain of the horizontal cells network, if 0, then the mean value of the output is zero, if the parameter is near 1, then, the luminance is not filtered and is still reachable at the output, typicall value is 0 hcellsTemporalConstant ( 1.f ), // the time constant of the first order low pass filter of the horizontal cells, use it to cut low temporal frequencies (local luminance variations), unit is frames, typical value is 1 frame, as the photoreceptors hcellsSpatialConstant ( 7.f ), //the spatial constant of the first order low pass filter of the horizontal cells, use it to cut low spatial frequencies (local luminance), unit is pixels, typical value is 5 pixel, this value is also used for local contrast computing when computing the local contrast adaptation at the ganglion cells level (Inner Plexiform Layer parvocellular channel model) ganglionCellsSensitivity ( 0.7f ) //the compression strengh of the ganglion cells local adaptation output, set a value between 0.6 and 1 for best results, a high value increases more the low value sensitivity... and the output saturates faster, recommended value: 0.7 {}; // default setup bool colorMode , normaliseOutput ; float photoreceptorsLocalAdaptationSensitivity , photoreceptorsTemporalConstant , photoreceptorsSpatialConstant , horizontalCellsGain , hcellsTemporalConstant , hcellsSpatialConstant , ganglionCellsSensitivity ; }; struct IplMagnoParameters { // Inner Plexiform Layer Magnocellular channel (IplMagno) IplMagnoParameters () : normaliseOutput ( true ), //specifies if (true) output is rescaled between 0 and 255 of not (false) parasolCells_beta ( 0.f ), // the low pass filter gain used for local contrast adaptation at the IPL level of the retina (for ganglion cells local adaptation), typical value is 0 parasolCells_tau ( 0.f ), //the low pass filter time constant used for local contrast adaptation at the IPL level of the retina (for ganglion cells local adaptation), unit is frame, typical value is 0 (immediate response) parasolCells_k ( 7.f ), //the low pass filter spatial constant used for local contrast adaptation at the IPL level of the retina (for ganglion cells local adaptation), unit is pixels, typical value is 5 amacrinCellsTemporalCutFrequency ( 1.2f ), //the time constant of the first order high pass fiter of the magnocellular way (motion information channel), unit is frames, typical value is 1.2 V0CompressionParameter ( 0.95f ), the compression strengh of the ganglion cells local adaptation output , set a value between 0.6 and 1 for best results , a high value increases more the low value sensitivity ... and the output saturates faster , recommended value : 0.95 localAdaptintegration_tau ( 0.f ), // specifies the temporal constant of the low pas filter involved in the computation of the local "motion mean" for the local adaptation computation localAdaptintegration_k ( 7.f ) // specifies the spatial constant of the low pas filter involved in the computation of the local "motion mean" for the local adaptation computation {}; // default setup bool normaliseOutput ; float parasolCells_beta , parasolCells_tau , parasolCells_k , amacrinCellsTemporalCutFrequency , V0CompressionParameter , localAdaptintegration_tau , localAdaptintegration_k ; }; struct OPLandIplParvoParameters OPLandIplParvo ; struct IplMagnoParameters IplMagno ; };