From 85cbdde06bb5e89937881f301ae70bdd243b8932 Mon Sep 17 00:00:00 2001 From: Sergei <rubasketcom@gmail.com> Date: Sun, 17 Feb 2019 16:01:42 +0300 Subject: [PATCH] Added loading/saving xml configuration for MultiCue (#148) --- config/MultiCue.xml | 17 +++++++++++++++++ package_bgs/MultiCue.cpp | 30 ++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 config/MultiCue.xml diff --git a/config/MultiCue.xml b/config/MultiCue.xml new file mode 100644 index 0000000..25b693a --- /dev/null +++ b/config/MultiCue.xml @@ -0,0 +1,17 @@ +<?xml version="1.0"?> +<opencv_storage> +<showOutput>1</showOutput> +<g_fLearningRate>5.0000000745058060e-02</g_fLearningRate> +<g_iAbsortionPeriod>200</g_iAbsortionPeriod> +<g_iC_ModelThreshold>10</g_iC_ModelThreshold> +<g_iT_ModelThreshold>1</g_iT_ModelThreshold> +<g_iBackClearPeriod>300</g_iBackClearPeriod> +<g_iCacheClearPeriod>30</g_iCacheClearPeriod> +<g_nNeighborNum>6</g_nNeighborNum> +<g_nRadius>2</g_nRadius> +<g_nTextureTrainVolRange>15</g_nTextureTrainVolRange> +<g_bAbsorptionEnable>1</g_bAbsorptionEnable> +<g_iTrainingPeriod>20</g_iTrainingPeriod> +<g_iRWidth>160</g_iRWidth> +<g_iRHeight>120</g_iRHeight> +</opencv_storage> diff --git a/package_bgs/MultiCue.cpp b/package_bgs/MultiCue.cpp index 317384b..fd04ed1 100644 --- a/package_bgs/MultiCue.cpp +++ b/package_bgs/MultiCue.cpp @@ -122,6 +122,21 @@ void MultiCue::saveConfig() CvFileStorage* fs = cvOpenFileStorage(config_xml.c_str(), nullptr, CV_STORAGE_WRITE); cvWriteInt(fs, "showOutput", showOutput); + cvWriteReal(fs, "g_fLearningRate", g_fLearningRate); + cvWriteInt(fs, "g_iAbsortionPeriod", g_iAbsortionPeriod); + cvWriteInt(fs, "g_iC_ModelThreshold", g_iC_ModelThreshold); + cvWriteInt(fs, "g_iT_ModelThreshold", g_iT_ModelThreshold); + + cvWriteInt(fs, "g_iBackClearPeriod", g_iBackClearPeriod); + cvWriteInt(fs, "g_iCacheClearPeriod", g_iCacheClearPeriod); + cvWriteInt(fs, "g_nNeighborNum", g_nNeighborNum); + cvWriteInt(fs, "g_nRadius", g_nRadius); + + cvWriteInt(fs, "g_nTextureTrainVolRange", g_nTextureTrainVolRange); + cvWriteInt(fs, "g_bAbsorptionEnable", g_bAbsorptionEnable); + cvWriteInt(fs, "g_iTrainingPeriod", g_iTrainingPeriod); + cvWriteInt(fs, "g_iRWidth", g_iRWidth); + cvWriteInt(fs, "g_iRHeight", g_iRHeight); cvReleaseFileStorage(&fs); } @@ -131,6 +146,21 @@ void MultiCue::loadConfig() CvFileStorage* fs = cvOpenFileStorage(config_xml.c_str(), nullptr, CV_STORAGE_READ); showOutput = cvReadIntByName(fs, nullptr, "showOutput", true); + g_fLearningRate = cvReadRealByName(fs, nullptr, "g_fLearningRate", g_fLearningRate); + g_iAbsortionPeriod = cvReadIntByName(fs, nullptr, "g_iAbsortionPeriod", g_iAbsortionPeriod); + g_iC_ModelThreshold = cvReadIntByName(fs, nullptr, "g_iC_ModelThreshold", g_iC_ModelThreshold); + g_iT_ModelThreshold = cvReadIntByName(fs, nullptr, "g_iT_ModelThreshold", g_iT_ModelThreshold); + + g_iBackClearPeriod = cvReadIntByName(fs, nullptr, "g_iBackClearPeriod", g_iBackClearPeriod); + g_iCacheClearPeriod = cvReadIntByName(fs, nullptr, "g_iCacheClearPeriod", g_iCacheClearPeriod); + g_nNeighborNum = cvReadIntByName(fs, nullptr, "g_nNeighborNum", g_nNeighborNum); + g_nRadius = cvReadIntByName(fs, nullptr, "g_nRadius", g_nRadius); + + g_nTextureTrainVolRange = cvReadIntByName(fs, nullptr, "g_nTextureTrainVolRange", g_nTextureTrainVolRange); + g_bAbsorptionEnable = cvReadIntByName(fs, nullptr, "g_bAbsorptionEnable", g_bAbsorptionEnable); + g_iTrainingPeriod = cvReadIntByName(fs, nullptr, "g_iTrainingPeriod", g_iTrainingPeriod); + g_iRWidth = cvReadIntByName(fs, nullptr, "g_iRWidth", g_iRWidth); + g_iRHeight = cvReadIntByName(fs, nullptr, "g_iRHeight", g_iRHeight); cvReleaseFileStorage(&fs); } -- GitLab