From 4408423c9f39bdd69d3639d3ab58d9ec025d920e Mon Sep 17 00:00:00 2001 From: Alexandre Benoit Date: Sun, 21 Aug 2011 13:12:14 +0000 Subject: [PATCH] waiting for optimisation at Retina::_convertCvMat2ValarrayBuffer --- modules/contrib/src/retina.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/contrib/src/retina.cpp b/modules/contrib/src/retina.cpp index c6845927a..345ef8a71 100644 --- a/modules/contrib/src/retina.cpp +++ b/modules/contrib/src/retina.cpp @@ -373,17 +373,22 @@ void Retina::_convertValarrayBuffer2cvMat(const std::valarray &grayMatrix } } -const bool Retina::_convertCvMat2ValarrayBuffer(const cv::Mat inputMatToConvert, std::valarray &outputValarrayMatrix) +const bool Retina::_convertCvMat2ValarrayBuffer(const cv::Mat inputFrame, std::valarray &outputValarrayMatrix) { // first check input consistency - if (inputMatToConvert.empty()) + if (inputFrame.empty()) throw cv::Exception(-1, "Retina cannot be applied, input buffer is empty", "Retina::run", "Retina.h", 0); // retreive color mode from image input - bool colorMode = inputMatToConvert.channels() >=3; + bool colorMode = inputFrame.channels() >=3; // convert to float AND fill the valarray buffer const int dsttype = CV_32F; // output buffer is float format + + // buffer format conversion... will be removed soon but WAITING for code error correction + cv::Mat inputMatToConvert; + inputFrame.convertTo(inputMatToConvert, dsttype); + if (colorMode) { // create a cv::Mat table (for RGB planes)