Skip to content
Snippets Groups Projects
Select Git revision
  • 0b5a9d7fec15785dfeecfc395773e998a65424aa
  • master default protected
  • beta
  • dev
  • andrewssobral-patch-1
  • update
  • thomas-fork
  • 2.0
  • v3.2.0
  • v3.1.0
  • v3.0
  • bgslib_py27_ocv3_win64
  • bgslib_java_2.0.0
  • bgslib_console_2.0.0
  • bgslib_matlab_win64_2.0.0
  • bgslib_qtgui_2.0.0
  • 2.0.0
  • bgs_console_2.0.0
  • bgs_matlab_win64_2.0.0
  • bgs_qtgui_2.0.0
  • v1.9.2_x86_mfc_gui
  • v1.9.2_x64_java_gui
  • v1.9.2_x86_java_gui
23 results

FrameProcessor.cpp

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    LBAdaptiveSOM.cpp 2.18 KiB
    #include "LBAdaptiveSOM.h"
    
    #if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
    
    using namespace bgslibrary::algorithms;
    
    LBAdaptiveSOM::LBAdaptiveSOM() :
      IBGS(quote(LBAdaptiveSOM)),
      sensitivity(75), trainingSensitivity(245),
      learningRate(62), trainingLearningRate(255),
      trainingSteps(55)
    {
      debug_construction(LBAdaptiveSOM);
      initLoadSaveConfig(algorithmName);
    }
    
    LBAdaptiveSOM::~LBAdaptiveSOM() {
      debug_destruction(LBAdaptiveSOM);
      delete m_pBGModel;
    }
    
    void LBAdaptiveSOM::process(const cv::Mat &img_input, cv::Mat &img_output, cv::Mat &img_bgmodel)
    {
      init(img_input, img_output, img_bgmodel);
    
      IplImage _frame = cvIplImage(img_input);
      IplImage* frame = cvCloneImage(&_frame);
    
      if (firstTime) {
        int w = img_input.size().width;
        int h = img_input.size().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);
    
      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(algorithmName + "_FG", img_foreground);
        cv::imshow(algorithmName + "_BG", img_background);
      }
    #endif
    
      img_foreground.copyTo(img_output);
      img_background.copyTo(img_bgmodel);
      cvReleaseImage(&frame);
    
      firstTime = false;
    }
    
    void LBAdaptiveSOM::save_config(cv::FileStorage &fs) {
      fs << "sensitivity" << sensitivity;
      fs << "trainingSensitivity" << trainingSensitivity;
      fs << "learningRate" << learningRate;
      fs << "trainingLearningRate" << trainingLearningRate;
      fs << "trainingSteps" << trainingSteps;
      fs << "showOutput" << showOutput;
    }
    
    void LBAdaptiveSOM::load_config(cv::FileStorage &fs) {
      fs["sensitivity"] >> sensitivity;
      fs["trainingSensitivity"] >> trainingSensitivity;
      fs["learningRate"] >> learningRate;
      fs["trainingLearningRate"] >> trainingLearningRate;
      fs["trainingSteps"] >> trainingSteps;
      fs["showOutput"] >> showOutput;
    }
    
    #endif