Select Git revision
basics.html
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Tapter.cpp 2.57 KiB
#include "Tapter.h"
#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
//IPLIMAGE?
// #include <opencv2/core/types_c.h>
// #include <opencv2/core/mat.hpp>
// #include <opencv2/imgproc.hpp>
// #include "lb/BGModelSom.h"
// #include "lb/Types.h"
using namespace bgslibrary::algorithms;
Tapter::Tapter() :
IBGS(quote(Tapter)),
sensitivity(75),
trainingSensitivity(245),
learningRate(62),
trainingLearningRate(255),
trainingSteps(55)
{
// load_config("./config/Tapter.xml")
debug_construction(Tapter);
initLoadSaveConfig(algorithmName);
}
Tapter::~Tapter()
{
debug_destruction(Tapter);
delete m_pBGModel;
}
void Tapter::process(const cv::Mat &img_input, cv::Mat &img_output, cv::Mat &img_bgmodel)
{
//! continue the normal
init(img_input, img_output, img_bgmodel);
IplImage *frame = new cvIplImage(img_input);
// IplImage *frame = new cv::cvarrToMat(img_input);
if (firstTime)
{
int w = cvGetSize(frame).width;
int h = cvGetSize(frame).height;
m_pBGModel = new lb::BGModelSom(w, h);
m_pBGModel->InitModel(frame);
m_pBGModel->setBGModelParameter(0, sensitivity);
m_pBGModel->setBGModelParameter(1, trainingSensitivity);
m_pBGModel->setBGModelParameter(2, learningRate);
m_pBGModel->setBGModelParameter(3, trainingLearningRate);
m_pBGModel->setBGModelParameter(5, trainingSteps); //xxx Y 5? what happened to 4?
firstTime = false;
}
m_pBGModel->UpdateModel(frame);
img_foreground = cv::cvarrToMat(m_pBGModel->GetFG());
img_background = cv::cvarrToMat(m_pBGModel->GetBG());
#ifndef MEX_COMPILE_FLAG
if (showOutput)
{
cv::imshow("SOM Mask", img_foreground);
cv::imshow("SOM Model", img_background);
}
#endif
img_foreground.copyTo(img_output);
img_background.copyTo(img_bgmodel);
delete frame;
}
void Tapter::save_config(cv::FileStorage &fs)
{
fs << "sensitivity" << sensitivity;
fs << "trainingSensitivity" << trainingSensitivity;
fs << "learningRate" << learningRate;
fs << "trainingLearningRate"<< trainingLearningRate;
fs << "trainingSteps" << trainingSteps;
fs << "showOutput" << showOutput;
}
void Tapter::load_config(cv::FileStorage &fs)
{
fs["sensitivity"] >> sensitivity;
fs["trainingSensitivity"] >> trainingSensitivity;
fs["learningRate"] >> learningRate;
fs["trainingLearningRate"] >> trainingLearningRate;
fs["trainingSteps"] >> trainingSteps;
fs["showOutput"] >> showOutput;
}
#endif