corrected xml parameters file management in the retina interface
This commit is contained in:
		@@ -116,22 +116,22 @@ public:
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Main constructor with most commun use setup : create an instance of color ready retina model
 | 
			
		||||
	 * @param parametersSaveFile : the filename of the xml file that records the used retina parametes setup
 | 
			
		||||
	 * @param inputSize : the input frame size
 | 
			
		||||
	 * @param parametersSaveFile : the filename of the xml file that records the default retina parameters setup, if empty, then, no default parameter file will be written
 | 
			
		||||
	 */
 | 
			
		||||
	Retina(const std::string parametersSaveFile, Size inputSize);
 | 
			
		||||
	Retina(Size inputSize, const std::string parametersSaveFile="");
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Complete Retina filter constructor which allows all basic structural parameters definition
 | 
			
		||||
	 * @param parametersSaveFile : the filename of the xml file that records the used retina parametes setup
 | 
			
		||||
         * @param inputSize : the input frame size
 | 
			
		||||
	 * @param parametersSaveFile : the filename of the xml file that records the default retina parameters setup, if empty, then, no default parameter file will be written
 | 
			
		||||
	 * @param colorMode : the chosen processing mode : with or without color processing
 | 
			
		||||
	 * @param colorSamplingMethod: specifies which kind of color sampling will be used
 | 
			
		||||
	 * @param useRetinaLogSampling: activate retina log sampling, if true, the 2 following parameters can be used
 | 
			
		||||
	 * @param reductionFactor: only usefull if param useRetinaLogSampling=true, specifies the reduction factor of the output frame (as the center (fovea) is high resolution and corners can be underscaled, then a reduction of the output is allowed without precision leak
 | 
			
		||||
	 * @param samplingStrenght: only usefull if param useRetinaLogSampling=true, specifies the strenght of the log scale that is applied
 | 
			
		||||
	 */
 | 
			
		||||
	Retina(const std::string parametersSaveFile, Size inputSize, const bool colorMode, RETINA_COLORSAMPLINGMETHOD colorSamplingMethod=RETINA_COLOR_BAYER, const bool useRetinaLogSampling=false, const double reductionFactor=1.0, const double samplingStrenght=10.0);
 | 
			
		||||
	Retina(Size inputSize, const std::string parametersSaveFile, const bool colorMode, RETINA_COLORSAMPLINGMETHOD colorSamplingMethod=RETINA_COLOR_BAYER, const bool useRetinaLogSampling=false, const double reductionFactor=1.0, const double samplingStrenght=10.0);
 | 
			
		||||
 | 
			
		||||
	virtual ~Retina();
 | 
			
		||||
 | 
			
		||||
@@ -266,7 +266,7 @@ protected:
 | 
			
		||||
	const bool _convertCvMat2ValarrayBuffer(const cv::Mat inputMatToConvert, std::valarray<float> &outputValarrayMatrix);
 | 
			
		||||
 | 
			
		||||
	//! private method called by constructors, gathers their parameters and use them in a unified way
 | 
			
		||||
	void _init(const std::string parametersSaveFile, Size inputSize, const bool colorMode, RETINA_COLORSAMPLINGMETHOD colorSamplingMethod=RETINA_COLOR_BAYER, const bool useRetinaLogSampling=false, const double reductionFactor=1.0, const double samplingStrenght=10.0);
 | 
			
		||||
	void _init(const std::string parametersSaveFileName, Size inputSize, const bool colorMode, RETINA_COLORSAMPLINGMETHOD colorSamplingMethod=RETINA_COLOR_BAYER, const bool useRetinaLogSampling=false, const double reductionFactor=1.0, const double samplingStrenght=10.0);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -75,13 +75,13 @@
 | 
			
		||||
namespace cv
 | 
			
		||||
{
 | 
			
		||||
    
 | 
			
		||||
Retina::Retina(const std::string parametersSaveFile, const cv::Size inputSize)
 | 
			
		||||
Retina::Retina(const cv::Size inputSize, const std::string parametersSaveFile)
 | 
			
		||||
{
 | 
			
		||||
    _retinaFilter = 0;
 | 
			
		||||
    _init(parametersSaveFile, inputSize, true, RETINA_COLOR_BAYER, false);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Retina::Retina(const std::string parametersSaveFile, const cv::Size inputSize, const bool colorMode, RETINA_COLORSAMPLINGMETHOD colorSamplingMethod, const bool useRetinaLogSampling, const double reductionFactor, const double samplingStrenght)
 | 
			
		||||
Retina::Retina(const cv::Size inputSize, const std::string parametersSaveFile, const bool colorMode, RETINA_COLORSAMPLINGMETHOD colorSamplingMethod, const bool useRetinaLogSampling, const double reductionFactor, const double samplingStrenght)
 | 
			
		||||
{
 | 
			
		||||
    _retinaFilter = 0;
 | 
			
		||||
    _init(parametersSaveFile, inputSize, colorMode, colorSamplingMethod, useRetinaLogSampling, reductionFactor, samplingStrenght);
 | 
			
		||||
@@ -303,9 +303,9 @@ void Retina::getMagno(std::valarray<float> &){_retinaFilter->getMovingContours()
 | 
			
		||||
void Retina::getParvo(std::valarray<float> &){_retinaFilter->getContours();}
 | 
			
		||||
 | 
			
		||||
// 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 parametersSaveFileName, const cv::Size inputSize, const bool colorMode, RETINA_COLORSAMPLINGMETHOD colorSamplingMethod, const bool useRetinaLogSampling, const double reductionFactor, const double samplingStrenght)
 | 
			
		||||
{
 | 
			
		||||
	_parametersSaveFileName = parametersSaveFile;
 | 
			
		||||
	_parametersSaveFileName = parametersSaveFileName;
 | 
			
		||||
 | 
			
		||||
	// basic error check
 | 
			
		||||
	if (inputSize.height*inputSize.width <= 0)
 | 
			
		||||
@@ -320,22 +320,24 @@ void Retina::_init(const std::string parametersSaveFile, const cv::Size inputSiz
 | 
			
		||||
           delete _retinaFilter;
 | 
			
		||||
	_retinaFilter = new RetinaFilter(inputSize.height, inputSize.width, colorMode, colorSamplingMethod, useRetinaLogSampling, reductionFactor, samplingStrenght);
 | 
			
		||||
 | 
			
		||||
	// prepare the parameter XML tree
 | 
			
		||||
	_parametersSaveFile.open(parametersSaveFile, cv::FileStorage::WRITE );
 | 
			
		||||
	// prepare the default parameter XML file with default setup
 | 
			
		||||
	if (_parametersSaveFileName.size()>0)
 | 
			
		||||
	{
 | 
			
		||||
		_parametersSaveFile.open(parametersSaveFileName, cv::FileStorage::WRITE );
 | 
			
		||||
 | 
			
		||||
	_parametersSaveFile<<"InputSize"<<"{";
 | 
			
		||||
	_parametersSaveFile<<"height"<<inputSize.height;
 | 
			
		||||
	_parametersSaveFile<<"width"<<inputSize.width;
 | 
			
		||||
	_parametersSaveFile<<"}";
 | 
			
		||||
		_parametersSaveFile<<"InputSize"<<"{";
 | 
			
		||||
		_parametersSaveFile<<"height"<<inputSize.height;
 | 
			
		||||
		_parametersSaveFile<<"width"<<inputSize.width;
 | 
			
		||||
		_parametersSaveFile<<"}";
 | 
			
		||||
 | 
			
		||||
	// clear all retina buffers
 | 
			
		||||
	// apply default setup
 | 
			
		||||
	setupOPLandIPLParvoChannel();
 | 
			
		||||
	setupIPLMagnoChannel();
 | 
			
		||||
 | 
			
		||||
	// write current parameters to params file
 | 
			
		||||
	_parametersSaveFile.release();
 | 
			
		||||
		// clear all retina buffers
 | 
			
		||||
		// apply default setup
 | 
			
		||||
		setupOPLandIPLParvoChannel();
 | 
			
		||||
		setupIPLMagnoChannel();
 | 
			
		||||
 | 
			
		||||
		// write current parameters to params file
 | 
			
		||||
		_parametersSaveFile.release();
 | 
			
		||||
	}
 | 
			
		||||
	// init retina
 | 
			
		||||
	_retinaFilter->clearAllBuffers();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user