Updated retina access methods and OpenEXR image tone mapping demo cleaned

This commit is contained in:
Alexandre Benoit 2011-09-04 08:00:28 +00:00
parent 9ea9cbf489
commit c02b5f1d45
2 changed files with 35 additions and 3 deletions

View File

@ -189,16 +189,28 @@ public:
/** /**
* accessor of the details channel of the retina (models foveal vision) * accessor of the details channel of the retina (models foveal vision)
* @param retinaOutput_parvo : the output buffer (reallocated if necessary) * @param retinaOutput_parvo : the output buffer (reallocated if necessary), this output is rescaled for standard 8bits image processing use in OpenCV
*/ */
void getParvo(Mat &retinaOutput_parvo); void getParvo(Mat &retinaOutput_parvo);
/**
* accessor of the details channel of the retina (models foveal vision)
* @param retinaOutput_parvo : the output buffer (reallocated if necessary), this output is the original retina filter model output, without any quantification or rescaling
*/
void getParvo(std::valarray<float> &retinaOutput_parvo);
/** /**
* accessor of the motion channel of the retina (models peripheral vision) * accessor of the motion channel of the retina (models peripheral vision)
* @param retinaOutput_magno : the output buffer (reallocated if necessary) * @param retinaOutput_magno : the output buffer (reallocated if necessary), this output is rescaled for standard 8bits image processing use in OpenCV
*/ */
void getMagno(Mat &retinaOutput_magno); void getMagno(Mat &retinaOutput_magno);
/**
* accessor of the motion channel of the retina (models peripheral vision)
* @param retinaOutput_magno : the output buffer (reallocated if necessary), this output is the original retina filter model output, without any quantification or rescaling
*/
void getMagno(std::valarray<float> &retinaOutput_magno);
/** /**
* activate color saturation as the final step of the color demultiplexing process * activate color saturation as the final step of the color demultiplexing process
* -> this saturation is a sigmoide function applied to each channel of the demultiplexed image. * -> this saturation is a sigmoide function applied to each channel of the demultiplexed image.
@ -212,6 +224,18 @@ public:
*/ */
void clearBuffers(); void clearBuffers();
/**
* Activate/desactivate the Magnocellular pathway processing (motion information extraction), by default, it is activated
* @param activate: true if Magnocellular output should be activated, false if not
*/
void activateMovingContoursProcessing(const bool activate);
/**
* Activate/desactivate the Parvocellular pathway processing (contours information extraction), by default, it is activated
* @param activate: true if Parvocellular (contours information extraction) output should be activated, false if not
*/
void activateContoursProcessing(const bool activate);
protected: protected:
// Parameteres setup members // Parameteres setup members
FileStorage _parametersSaveFile; //!< parameters file ... saved on instance delete FileStorage _parametersSaveFile; //!< parameters file ... saved on instance delete

View File

@ -297,6 +297,9 @@ void Retina::getMagno(cv::Mat &retinaOutput_magno)
//retinaOutput_magno/=255.0; //retinaOutput_magno/=255.0;
} }
// original API level data accessors
void Retina::getMagno(std::valarray<float> &retinaOutput_magno){_retinaFilter->getMovingContours();}
void Retina::getParvo(std::valarray<float> &retinaOutput_parvo){_retinaFilter->getContours();}
// private method called by constructirs // private method called by constructirs
void Retina::_init(const std::string parametersSaveFile, const cv::Size inputSize, const bool colorMode, RETINA_COLORSAMPLINGMETHOD colorSamplingMethod, const bool useRetinaLogSampling, const double reductionFactor, const double samplingStrenght) void Retina::_init(const std::string parametersSaveFile, const cv::Size inputSize, const bool colorMode, RETINA_COLORSAMPLINGMETHOD colorSamplingMethod, const bool useRetinaLogSampling, const double reductionFactor, const double samplingStrenght)
@ -312,7 +315,8 @@ void Retina::_init(const std::string parametersSaveFile, const cv::Size inputSiz
_inputBuffer.resize(nbPixels*3); // buffer supports gray images but also 3 channels color buffers... (larger is better...) _inputBuffer.resize(nbPixels*3); // buffer supports gray images but also 3 channels color buffers... (larger is better...)
// allocate the retina model // allocate the retina model
delete _retinaFilter; if (_retinaFilter)
delete _retinaFilter;
_retinaFilter = new RetinaFilter(inputSize.height, inputSize.width, colorMode, colorSamplingMethod, useRetinaLogSampling, reductionFactor, samplingStrenght); _retinaFilter = new RetinaFilter(inputSize.height, inputSize.width, colorMode, colorSamplingMethod, useRetinaLogSampling, reductionFactor, samplingStrenght);
// prepare the parameter XML tree // prepare the parameter XML tree
@ -424,5 +428,9 @@ const bool Retina::_convertCvMat2ValarrayBuffer(const cv::Mat inputMatToConvert,
void Retina::clearBuffers() {_retinaFilter->clearAllBuffers();} void Retina::clearBuffers() {_retinaFilter->clearAllBuffers();}
void Retina::activateMovingContoursProcessing(const bool activate){_retinaFilter->activateMovingContoursProcessing(activate);}
void Retina::activateContoursProcessing(const bool activate){_retinaFilter->activateMovingContoursProcessing(activate);}
} // end of namespace cv } // end of namespace cv