diff --git a/modules/contrib/src/retina.cpp b/modules/contrib/src/retina.cpp index 9a113fc37a..bd6e552b2b 100644 --- a/modules/contrib/src/retina.cpp +++ b/modules/contrib/src/retina.cpp @@ -323,9 +323,9 @@ void Retina::getMagno(cv::Mat &retinaOutput_magno) //retinaOutput_magno/=255.0; } -// original API level data accessors -void Retina::getMagno(std::valarray &){_retinaFilter->getMovingContours();} -void Retina::getParvo(std::valarray &){_retinaFilter->getContours();} +// original API level data accessors : copy buffers if size matches +void Retina::getMagno(std::valarray &magnoOutputBufferCopy){if (magnoOutputBufferCopy.size()==_retinaFilter->getMovingContours().size()) magnoOutputBufferCopy = _retinaFilter->getMovingContours();} +void Retina::getParvo(std::valarray &parvoOutputBufferCopy){if (parvoOutputBufferCopy.size()==_retinaFilter->getContours().size()) parvoOutputBufferCopy = _retinaFilter->getContours();} // private method called by constructirs void Retina::_init(const cv::Size inputSize, const bool colorMode, RETINA_COLORSAMPLINGMETHOD colorSamplingMethod, const bool useRetinaLogSampling, const double reductionFactor, const double samplingStrenght)