From 34bb3bbfcb85fe579c500693e808062c3ef9620a Mon Sep 17 00:00:00 2001 From: Andrews Sobral <andrewssobral@gmail.com> Date: Tue, 2 Sep 2014 00:29:34 +0200 Subject: [PATCH] bgslibrary mfc app code --- vs2010mfc/App.cpp | 94 +++ vs2010mfc/App.h | 32 + vs2010mfc/Dlg.cpp | 704 ++++++++++++++++++ vs2010mfc/Dlg.h | 92 +++ vs2010mfc/ReadMe.txt | 100 +++ vs2010mfc/bgslibrary_vs2010_mfc.aps | Bin 0 -> 93224 bytes vs2010mfc/bgslibrary_vs2010_mfc.rc | Bin 0 -> 17964 bytes vs2010mfc/bgslibrary_vs2010_mfc.sln | 20 + vs2010mfc/bgslibrary_vs2010_mfc.vcxproj | 276 +++++++ .../bgslibrary_vs2010_mfc.vcxproj.filters | 524 +++++++++++++ vs2010mfc/bgslibrary_vs2010_mfc.vcxproj.user | 3 + .../config/AdaptiveBackgroundLearning.xml | 9 + .../AdaptiveSelectiveBackgroundLearning.xml | 8 + vs2010mfc/config/DPAdaptiveMedianBGS.xml | 7 + vs2010mfc/config/DPEigenbackgroundBGS.xml | 7 + vs2010mfc/config/DPGrimsonGMMBGS.xml | 7 + vs2010mfc/config/DPMeanBGS.xml | 7 + vs2010mfc/config/DPPratiMediodBGS.xml | 8 + vs2010mfc/config/DPTextureBGS.xml | 4 + vs2010mfc/config/DPWrenGABGS.xml | 7 + vs2010mfc/config/DPZivkovicAGMMBGS.xml | 7 + vs2010mfc/config/FrameDifferenceBGS.xml | 6 + vs2010mfc/config/FuzzyChoquetIntegral.xml | 11 + vs2010mfc/config/FuzzySugenoIntegral.xml | 11 + vs2010mfc/config/GMG.xml | 6 + vs2010mfc/config/IndependentMultimodalBGS.xml | 4 + vs2010mfc/config/KDE.xml | 11 + vs2010mfc/config/LBAdaptiveSOM.xml | 9 + vs2010mfc/config/LBFuzzyAdaptiveSOM.xml | 9 + vs2010mfc/config/LBFuzzyGaussian.xml | 8 + vs2010mfc/config/LBMixtureOfGaussians.xml | 8 + vs2010mfc/config/LBSimpleGaussian.xml | 7 + vs2010mfc/config/MixtureOfGaussianV1BGS.xml | 7 + vs2010mfc/config/MixtureOfGaussianV2BGS.xml | 7 + vs2010mfc/config/MultiCueBGS.xml | 4 + vs2010mfc/config/MultiLayerBGS.xml | 31 + vs2010mfc/config/SigmaDeltaBGS.xml | 7 + vs2010mfc/config/StaticFrameDifferenceBGS.xml | 6 + vs2010mfc/config/T2FGMM_UM.xml | 9 + vs2010mfc/config/T2FGMM_UV.xml | 9 + vs2010mfc/config/T2FMRF_UM.xml | 9 + vs2010mfc/config/T2FMRF_UV.xml | 9 + vs2010mfc/config/VuMeter.xml | 8 + vs2010mfc/config/WeightedMovingMeanBGS.xml | 8 + .../config/WeightedMovingVarianceBGS.xml | 7 + vs2010mfc/res/bgslibrary_vs2010_mfc.ico | Bin 0 -> 67777 bytes vs2010mfc/res/bgslibrary_vs2010_mfc.rc2 | Bin 0 -> 826 bytes vs2010mfc/resource.h | Bin 0 -> 4240 bytes vs2010mfc/stdafx.cpp | 8 + vs2010mfc/stdafx.h | 102 +++ vs2010mfc/targetver.h | 8 + 51 files changed, 2245 insertions(+) create mode 100644 vs2010mfc/App.cpp create mode 100644 vs2010mfc/App.h create mode 100644 vs2010mfc/Dlg.cpp create mode 100644 vs2010mfc/Dlg.h create mode 100644 vs2010mfc/ReadMe.txt create mode 100644 vs2010mfc/bgslibrary_vs2010_mfc.aps create mode 100644 vs2010mfc/bgslibrary_vs2010_mfc.rc create mode 100644 vs2010mfc/bgslibrary_vs2010_mfc.sln create mode 100644 vs2010mfc/bgslibrary_vs2010_mfc.vcxproj create mode 100644 vs2010mfc/bgslibrary_vs2010_mfc.vcxproj.filters create mode 100644 vs2010mfc/bgslibrary_vs2010_mfc.vcxproj.user create mode 100644 vs2010mfc/config/AdaptiveBackgroundLearning.xml create mode 100644 vs2010mfc/config/AdaptiveSelectiveBackgroundLearning.xml create mode 100644 vs2010mfc/config/DPAdaptiveMedianBGS.xml create mode 100644 vs2010mfc/config/DPEigenbackgroundBGS.xml create mode 100644 vs2010mfc/config/DPGrimsonGMMBGS.xml create mode 100644 vs2010mfc/config/DPMeanBGS.xml create mode 100644 vs2010mfc/config/DPPratiMediodBGS.xml create mode 100644 vs2010mfc/config/DPTextureBGS.xml create mode 100644 vs2010mfc/config/DPWrenGABGS.xml create mode 100644 vs2010mfc/config/DPZivkovicAGMMBGS.xml create mode 100644 vs2010mfc/config/FrameDifferenceBGS.xml create mode 100644 vs2010mfc/config/FuzzyChoquetIntegral.xml create mode 100644 vs2010mfc/config/FuzzySugenoIntegral.xml create mode 100644 vs2010mfc/config/GMG.xml create mode 100644 vs2010mfc/config/IndependentMultimodalBGS.xml create mode 100644 vs2010mfc/config/KDE.xml create mode 100644 vs2010mfc/config/LBAdaptiveSOM.xml create mode 100644 vs2010mfc/config/LBFuzzyAdaptiveSOM.xml create mode 100644 vs2010mfc/config/LBFuzzyGaussian.xml create mode 100644 vs2010mfc/config/LBMixtureOfGaussians.xml create mode 100644 vs2010mfc/config/LBSimpleGaussian.xml create mode 100644 vs2010mfc/config/MixtureOfGaussianV1BGS.xml create mode 100644 vs2010mfc/config/MixtureOfGaussianV2BGS.xml create mode 100644 vs2010mfc/config/MultiCueBGS.xml create mode 100644 vs2010mfc/config/MultiLayerBGS.xml create mode 100644 vs2010mfc/config/SigmaDeltaBGS.xml create mode 100644 vs2010mfc/config/StaticFrameDifferenceBGS.xml create mode 100644 vs2010mfc/config/T2FGMM_UM.xml create mode 100644 vs2010mfc/config/T2FGMM_UV.xml create mode 100644 vs2010mfc/config/T2FMRF_UM.xml create mode 100644 vs2010mfc/config/T2FMRF_UV.xml create mode 100644 vs2010mfc/config/VuMeter.xml create mode 100644 vs2010mfc/config/WeightedMovingMeanBGS.xml create mode 100644 vs2010mfc/config/WeightedMovingVarianceBGS.xml create mode 100644 vs2010mfc/res/bgslibrary_vs2010_mfc.ico create mode 100644 vs2010mfc/res/bgslibrary_vs2010_mfc.rc2 create mode 100644 vs2010mfc/resource.h create mode 100644 vs2010mfc/stdafx.cpp create mode 100644 vs2010mfc/stdafx.h create mode 100644 vs2010mfc/targetver.h diff --git a/vs2010mfc/App.cpp b/vs2010mfc/App.cpp new file mode 100644 index 0000000..a6f45c7 --- /dev/null +++ b/vs2010mfc/App.cpp @@ -0,0 +1,94 @@ + +// App.cpp : Defines the class behaviors for the application. +// + +#include "stdafx.h" +#include "App.h" +#include "Dlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif + + +// CApp + +BEGIN_MESSAGE_MAP(CApp, CWinApp) + ON_COMMAND(ID_HELP, &CWinApp::OnHelp) +END_MESSAGE_MAP() + + +// CApp construction + +CApp::CApp() +{ + // support Restart Manager + m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; + + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + + +// The one and only CApp object + +CApp theApp; + + +// CApp initialization + +BOOL CApp::InitInstance() +{ + // InitCommonControlsEx() is required on Windows XP if an application + // manifest specifies use of ComCtl32.dll version 6 or later to enable + // visual styles. Otherwise, any window creation will fail. + INITCOMMONCONTROLSEX InitCtrls; + InitCtrls.dwSize = sizeof(InitCtrls); + // Set this to include all the common control classes you want to use + // in your application. + InitCtrls.dwICC = ICC_WIN95_CLASSES; + InitCommonControlsEx(&InitCtrls); + + CWinApp::InitInstance(); + + + AfxEnableControlContainer(); + + // Create the shell manager, in case the dialog contains + // any shell tree view or shell list view controls. + CShellManager *pShellManager = new CShellManager; + + // Standard initialization + // If you are not using these features and wish to reduce the size + // of your final executable, you should remove from the following + // the specific initialization routines you do not need + // Change the registry key under which our settings are stored + // TODO: You should modify this string to be something appropriate + // such as the name of your company or organization + SetRegistryKey(_T("Local AppWizard-Generated Applications")); + + CDlg dlg; + m_pMainWnd = &dlg; + INT_PTR nResponse = dlg.DoModal(); + if (nResponse == IDOK) + { + // TODO: Place code here to handle when the dialog is + // dismissed with OK + } + else if (nResponse == IDCANCEL) + { + // TODO: Place code here to handle when the dialog is + // dismissed with Cancel + } + + // Delete the shell manager created above. + if (pShellManager != NULL) + { + delete pShellManager; + } + + // Since the dialog has been closed, return FALSE so that we exit the + // application, rather than start the application's message pump. + return FALSE; +} + diff --git a/vs2010mfc/App.h b/vs2010mfc/App.h new file mode 100644 index 0000000..5ef9764 --- /dev/null +++ b/vs2010mfc/App.h @@ -0,0 +1,32 @@ + +// App.h : main header file for the application +// + +#pragma once + +#ifndef __AFXWIN_H__ + #error "include 'stdafx.h' before including this file for PCH" +#endif + +#include "resource.h" // main symbols + + +// CApp: +// See App.cpp for the implementation of this class +// + +class CApp : public CWinApp +{ +public: + CApp(); + +// Overrides +public: + virtual BOOL InitInstance(); + +// Implementation + + DECLARE_MESSAGE_MAP() +}; + +extern CApp theApp; \ No newline at end of file diff --git a/vs2010mfc/Dlg.cpp b/vs2010mfc/Dlg.cpp new file mode 100644 index 0000000..1aefff0 --- /dev/null +++ b/vs2010mfc/Dlg.cpp @@ -0,0 +1,704 @@ + +// Dlg.cpp : implementation file +// + +#include "stdafx.h" +#include "App.h" +#include "Dlg.h" +#include "afxdialogex.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif + + +// CAboutDlg dialog used for App About + +class CAboutDlg : public CDialogEx +{ +public: + CAboutDlg(); + +// Dialog Data + enum { IDD = IDD_ABOUTBOX }; + + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + +// Implementation +protected: + DECLARE_MESSAGE_MAP() +}; + +CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD) +{ +} + +void CAboutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); +} + +BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx) +END_MESSAGE_MAP() + + +// CDlg dialog + + + + +CDlg::CDlg(CWnd* pParent /*=NULL*/) + : CDialogEx(CDlg::IDD, pParent) +{ + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); +} + +void CDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); + DDX_Control(pDX, IDC_COMBO_BGSLIST, m_bgslist); + DDX_Control(pDX, IDC_LOG, m_log); + DDX_Control(pDX, IDC_INPUT_VIDEO, m_inputVideo); + DDX_Control(pDX, IDC_USE_WEBCAM, m_useWebCam); + DDX_Control(pDX, IDC_SPIN_WEBCAM_INDEX, m_spinWebCamIndex); + DDX_Control(pDX, IDC_EDIT_WEBCAM_INDEX, m_webCamIndex); + DDX_Control(pDX, IDC_FRAME_NUMBER, m_frameNumber); + DDX_Control(pDX, IDC_SAVE_FRAME, m_saveFrame); + DDX_Control(pDX, IDC_SAVE_MASK, m_saveMask); + DDX_Control(pDX, IDC_SAVE_BKG, m_saveBkg); + DDX_Control(pDX, IDC_IMG_SEQ, m_isImgSeq); + DDX_Control(pDX, IDC_EDIT_START_IDX, m_startIdx); + DDX_Control(pDX, IDC_EDIT_STOP_IDX, m_stopIdx); + DDX_Control(pDX, IDC_COMBO_FILE_TYPE, m_fileTypeList); + DDX_Control(pDX, IDC_SPIN_START_IDX, m_spinStartIdx); + DDX_Control(pDX, IDC_SPIN_STOP_IDX, m_spinStopIdx); + DDX_Control(pDX, IDC_EDIT_DELAY, m_delay); + DDX_Control(pDX, IDC_EXEC_TIME, m_execTime); + DDX_Control(pDX, IDC_MEDIAN_FILTER, m_medianFilter); +} + +BEGIN_MESSAGE_MAP(CDlg, CDialogEx) + ON_WM_SYSCOMMAND() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + ON_BN_CLICKED(IDSTART, &CDlg::OnBnClickedStart) + ON_BN_CLICKED(IDSTOP, &CDlg::OnBnClickedStop) + ON_BN_CLICKED(IDC_USE_WEBCAM, &CDlg::OnBnClickedUseWebcam) + ON_BN_CLICKED(IDC_IMG_SEQ, &CDlg::OnBnClickedImgSeq) + ON_BN_CLICKED(IDSAVE, &CDlg::OnBnClickedSave) +END_MESSAGE_MAP() + + +// CDlg message handlers + +BOOL CDlg::OnInitDialog() +{ + CDialogEx::OnInitDialog(); + + // Add "About..." menu item to system menu. + + // IDM_ABOUTBOX must be in the system command range. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + if (pSysMenu != NULL) + { + BOOL bNameValid; + CString strAboutMenu; + bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); + ASSERT(bNameValid); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + } + + // Set the icon for this dialog. The framework does this automatically + // when the application's main window is not a dialog + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + // TODO: Add extra initialization here + methodName = L""; + useWebCam = false; + useImgSeq = false; + filePath = L""; + bgs = NULL; + webCamIndex = 0; + m_spinWebCamIndex.SetRange(0, 9); + m_spinStartIdx.SetRange(0, 999999); + m_spinStopIdx.SetRange(0, 999999); + m_frameNumber.SetWindowTextW(L"0"); + + addBgsList(); + m_fileTypeList.AddString(L"PNG"); + m_fileTypeList.AddString(L"JPG"); + m_fileTypeList.AddString(L"JPEG"); + m_fileTypeList.AddString(L"JPE"); + m_fileTypeList.AddString(L"JP2"); + m_fileTypeList.AddString(L"BMP"); + m_fileTypeList.AddString(L"DIB"); + m_fileTypeList.AddString(L"PBM"); + m_fileTypeList.AddString(L"PGM"); + m_fileTypeList.AddString(L"PPM"); + m_fileTypeList.AddString(L"SR"); + m_fileTypeList.AddString(L"RAS"); + m_fileTypeList.AddString(L"TIFF"); + m_fileTypeList.AddString(L"TIF"); + m_fileTypeList.SelectString(0,L"PNG"); + m_inputVideo.SetWindowTextW(L"../dataset/video.avi"); + m_delay.SetWindowTextW(L"1"); + m_execTime.SetWindowTextW(L"0"); + + started = false; + if(started == false) + { + cv::namedWindow("INPUT", 1); + HWND hWnd = (HWND) cvGetWindowHandle("INPUT"); + HWND hParent = ::GetParent(hWnd); + ::SetParent(hWnd, GetDlgItem(IDC_FRAME_INPUT)->m_hWnd); + ::ShowWindow(hParent, SW_HIDE); + } + + if(started == false) + { + cv::namedWindow("MASK", 1); + HWND hWnd = (HWND) cvGetWindowHandle("MASK"); + HWND hParent = ::GetParent(hWnd); + ::SetParent(hWnd, GetDlgItem(IDC_FRAME_MASK)->m_hWnd); + ::ShowWindow(hParent, SW_HIDE); + } + + if(started == false) + { + cv::namedWindow("BKG", 1); + HWND hWnd = (HWND) cvGetWindowHandle("BKG"); + HWND hParent = ::GetParent(hWnd); + ::SetParent(hWnd, GetDlgItem(IDC_FRAME_BKG)->m_hWnd); + ::ShowWindow(hParent, SW_HIDE); + } + + return TRUE; // return TRUE unless you set the focus to a control +} + +void CDlg::OnSysCommand(UINT nID, LPARAM lParam) +{ + if ((nID & 0xFFF0) == IDM_ABOUTBOX) + { + CAboutDlg dlgAbout; + dlgAbout.DoModal(); + } + else + { + CDialogEx::OnSysCommand(nID, lParam); + } +} + +// If you add a minimize button to your dialog, you will need the code below +// to draw the icon. For MFC applications using the document/view model, +// this is automatically done for you by the framework. + +void CDlg::OnPaint() +{ + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialogEx::OnPaint(); + } +} + +// The system calls this function to obtain the cursor to display while the user drags +// the minimized window. +HCURSOR CDlg::OnQueryDragIcon() +{ + return static_cast<HCURSOR>(m_hIcon); +} + +void CDlg::addBgsList() +{ + // 34 algorithms + m_bgslist.AddString(L"FrameDifferenceBGS"); + m_bgslist.AddString(L"StaticFrameDifferenceBGS"); + m_bgslist.AddString(L"WeightedMovingMeanBGS"); + m_bgslist.AddString(L"WeightedMovingVarianceBGS"); + m_bgslist.AddString(L"MixtureOfGaussianV1BGS"); + m_bgslist.AddString(L"MixtureOfGaussianV2BGS"); + m_bgslist.AddString(L"AdaptiveBackgroundLearning"); + m_bgslist.AddString(L"AdaptiveSelectiveBackgroundLearning"); + m_bgslist.AddString(L"GMG"); + m_bgslist.AddString(L"DPAdaptiveMedianBGS"); + m_bgslist.AddString(L"DPGrimsonGMMBGS"); + m_bgslist.AddString(L"DPZivkovicAGMMBGS"); + m_bgslist.AddString(L"DPMeanBGS"); + m_bgslist.AddString(L"DPWrenGABGS"); + m_bgslist.AddString(L"DPPratiMediodBGS"); + m_bgslist.AddString(L"DPEigenbackgroundBGS"); + m_bgslist.AddString(L"DPTextureBGS"); + m_bgslist.AddString(L"T2FGMM_UM"); + m_bgslist.AddString(L"T2FGMM_UV"); + m_bgslist.AddString(L"T2FMRF_UM"); + m_bgslist.AddString(L"T2FMRF_UV"); + m_bgslist.AddString(L"FuzzySugenoIntegral"); + m_bgslist.AddString(L"FuzzyChoquetIntegral"); + m_bgslist.AddString(L"LBSimpleGaussian"); + m_bgslist.AddString(L"LBFuzzyGaussian"); + m_bgslist.AddString(L"LBMixtureOfGaussians"); + m_bgslist.AddString(L"LBAdaptiveSOM"); + m_bgslist.AddString(L"LBFuzzyAdaptiveSOM"); + m_bgslist.AddString(L"MultiLayerBGS"); + //m_bgslist.AddString(L"PBAS"); + m_bgslist.AddString(L"VuMeter"); + m_bgslist.AddString(L"KDE"); + m_bgslist.AddString(L"IndependentMultimodalBGS"); + m_bgslist.AddString(L"SJN_MultiCueBGS"); + m_bgslist.AddString(L"SigmaDeltaBGS"); +} + +bool CDlg::getBgsMethodName() +{ + int nIndex = m_bgslist.GetCurSel(); + if(nIndex != CB_ERR) + { + m_bgslist.GetLBText(nIndex, methodName); + return true; + } + else + { + AfxMessageBox(L"Please, select one background subtraction method!"); + return false; + } +} + +bool CDlg::getFileType() +{ + int nIndex = m_fileTypeList.GetCurSel(); + if(nIndex != CB_ERR) + { + m_fileTypeList.GetLBText(nIndex, fileType); + return true; + } + else + { + AfxMessageBox(L"Please, select one file type or extension!"); + return false; + } +} + +bool CDlg::getInputVideoFilePath() +{ + m_inputVideo.GetWindowTextW(filePath); + + if(filePath.GetLength() > 0) + return true; + else + { + AfxMessageBox(L"Please, select one video file or image sequence folder!"); + return false; + } +} + +void CDlg::OnBnClickedStart() +{ + if(started == false) + { + m_log.SetWindowTextW(L"Checking..."); + + if(!getBgsMethodName()) + { + m_log.SetWindowTextW(L"Stopped..."); + return; + } + + useWebCam = false; + if(m_useWebCam.GetCheck() == BST_CHECKED) + useWebCam = true; + + useImgSeq = false; + if(m_isImgSeq.GetCheck() == BST_CHECKED) + { + useImgSeq = true; + + if(!getFileType()) + { + m_log.SetWindowTextW(L"Stopped..."); + return; + } + } + + if(useWebCam == false) + if(!getInputVideoFilePath()) + { + m_log.SetWindowTextW(L"Stopped..."); + return; + } + + m_log.SetWindowTextW(L"Starting..."); + thread = AfxBeginThread((AFX_THREADPROC) CDlg::Thread, (LPVOID) this); + } + else + { + AfxMessageBox(L"Thread is already initialized!"); + return; + } +} + +DWORD CDlg::Thread(LPVOID *lpvParam) +{ + CDlg *thr = (CDlg*) lpvParam; + thr->ThreadProcess(); + return NULL; +} + +void CDlg::ThreadProcess() +{ + CString csStartIdx; + m_startIdx.GetWindowTextW(csStartIdx); + startIdx = _tstoi(csStartIdx); + + CString csStopIdx; + m_stopIdx.GetWindowTextW(csStopIdx); + stopIdx = _tstoi(csStopIdx); + + if(useImgSeq == false) + { + if(useWebCam) + { + CString strIndex; + m_webCamIndex.GetWindowTextW(strIndex); + webCamIndex = _tstoi(strIndex); + capture = cvCaptureFromCAM(webCamIndex); + } + else + { + CStringA file_path_aux(filePath); + capture = cvCaptureFromFile((const char *) file_path_aux); + } + + if(!capture) + { + AfxMessageBox(L"ERROR: Cannot initialize video!"); + m_log.SetWindowTextW(L"Stopped..."); + return; + } + } + else + { + if(stopIdx == 0) + { + AfxMessageBox(L"Stop index not defined!"); + return; + } + + if(startIdx > stopIdx) + { + AfxMessageBox(L"Start index is higher than stop index!"); + return; + } + } + + /* Background Subtraction Methods */ + + if(methodName == "FrameDifferenceBGS") + bgs = new FrameDifferenceBGS; + if(methodName == "StaticFrameDifferenceBGS") + bgs = new StaticFrameDifferenceBGS; + if(methodName == "WeightedMovingMeanBGS") + bgs = new WeightedMovingMeanBGS; + if(methodName == "WeightedMovingVarianceBGS") + bgs = new WeightedMovingVarianceBGS; + if(methodName == "MixtureOfGaussianV1BGS") + bgs = new MixtureOfGaussianV1BGS; + if(methodName == "MixtureOfGaussianV2BGS") + bgs = new MixtureOfGaussianV2BGS; + if(methodName == "AdaptiveBackgroundLearning") + bgs = new AdaptiveBackgroundLearning; + if(methodName == "AdaptiveSelectiveBackgroundLearning") + bgs = new AdaptiveSelectiveBackgroundLearning; + if(methodName == "GMG") + bgs = new GMG; + + if(methodName == "DPAdaptiveMedianBGS") + bgs = new DPAdaptiveMedianBGS; + if(methodName == "DPGrimsonGMMBGS") + bgs = new DPGrimsonGMMBGS; + if(methodName == "DPZivkovicAGMMBGS") + bgs = new DPZivkovicAGMMBGS; + if(methodName == "DPMeanBGS") + bgs = new DPMeanBGS; + if(methodName == "DPWrenGABGS") + bgs = new DPWrenGABGS; + if(methodName == "DPPratiMediodBGS") + bgs = new DPPratiMediodBGS; + if(methodName == "DPEigenbackgroundBGS") + bgs = new DPEigenbackgroundBGS; + if(methodName == "DPTextureBGS") + bgs = new DPTextureBGS; + + if(methodName == "T2FGMM_UM") + bgs = new T2FGMM_UM; + if(methodName == "T2FGMM_UV") + bgs = new T2FGMM_UV; + if(methodName == "T2FMRF_UM") + bgs = new T2FMRF_UM; + if(methodName == "T2FMRF_UV") + bgs = new T2FMRF_UV; + if(methodName == "FuzzySugenoIntegral") + bgs = new FuzzySugenoIntegral; + if(methodName == "FuzzyChoquetIntegral") + bgs = new FuzzyChoquetIntegral; + + if(methodName == "LBSimpleGaussian") + bgs = new LBSimpleGaussian; + if(methodName == "LBFuzzyGaussian") + bgs = new LBFuzzyGaussian; + if(methodName == "LBMixtureOfGaussians") + bgs = new LBMixtureOfGaussians; + if(methodName == "LBAdaptiveSOM") + bgs = new LBAdaptiveSOM; + if(methodName == "LBFuzzyAdaptiveSOM") + bgs = new LBFuzzyAdaptiveSOM; + if(methodName == "MultiLayerBGS") + bgs = new MultiLayerBGS; + // The PBAS algorithm was removed from BGSLibrary because it is based on patented algorithm ViBE + // if(methodName == "PBAS") + // bgs = new PixelBasedAdaptiveSegmenter; + if(methodName == "VuMeter") + bgs = new VuMeter; + if(methodName == "KDE") + bgs = new KDE; + if(methodName == "IndependentMultimodalBGS") + bgs = new IndependentMultimodalBGS; + if(methodName == "SJN_MultiCueBGS") + bgs = new SJN_MultiCueBGS; + if (methodName == "SigmaDeltaBGS") + bgs = new SigmaDeltaBGS; + + if(bgs == NULL) + { + AfxMessageBox(L"BGS object not defined!"); + return; + } + + started = true; + int i = 0; + if(useImgSeq == true && startIdx > 0) + i = startIdx - 1; + CString strFrameNumber; + CString strExecTime; + cv::Size default_size; + default_size.width = 235; + default_size.height = 189; + IplImage* frame; + std::string input_filename; + cv::Mat img_input; + // Convert a TCHAR string to a LPCSTR + CT2CA fileType2(fileType); + CT2CA filePath2(filePath); + // construct a std::string using the LPCSTR input + std::string str_fileType(fileType2); + std::string str_filePath(filePath2); + // delay + CString csDelay; + m_delay.GetWindowTextW(csDelay); + int delay = _tstoi(csDelay); + + do + { + m_log.SetWindowTextW(L"Running..."); + + i++; + //::Sleep(1); + + if(useImgSeq == true && i == (stopIdx + 1)) + break; + + if(useImgSeq) + { + input_filename = str_filePath + "\\" + boost::lexical_cast<std::string>(i) + "." + str_fileType; + img_input = cv::imread(input_filename); + + CString input_filename2(input_filename.c_str()); + m_log.SetWindowTextW(input_filename2); + + strFrameNumber.Format(L"%d",i); + m_frameNumber.SetWindowTextW(strFrameNumber); + + if(img_input.data == NULL) + { + AfxMessageBox(L"File can not be read!"); + break; + } + } + else + { + if(useWebCam == false && stopIdx >= 2 && i > stopIdx) + break; + + frame = cvQueryFrame(capture); + if(!frame) + break; + + if(useWebCam == false && startIdx >= 2 && i < startIdx) + continue; + + img_input = cv::Mat(frame,true); + } + + cv::Mat img_mask; + cv::Mat img_bkg; + Clock::time_point t0 = Clock::now(); + bgs->process(img_input, img_mask, img_bkg); + Clock::time_point t1 = Clock::now(); + auto d = boost::chrono::duration_cast<milliseconds>(t1 - t0); + //std::cout << "\nElapsed time: " << d.count() << "ms" << std::endl; + + cv::Mat img_input_aux; + cv::resize(img_input, img_input_aux, default_size); + + cv::Mat img_mask_aux; + if(img_mask.empty()) + img_mask = cv::Mat::zeros(cv::Size(img_input.size().width, img_input.size().height), img_input.type()); + if(m_medianFilter.GetCheck() == BST_CHECKED) + cv::medianBlur(img_mask, img_mask, 5); + cv::resize(img_mask, img_mask_aux, default_size); + + cv::Mat img_bgk_aux; + if(img_bkg.empty()) + img_bkg = cv::Mat::zeros(cv::Size(img_input.size().width, img_input.size().height), img_input.type()); + cv::resize(img_bkg, img_bgk_aux, default_size); + + cv::imshow("INPUT", img_input_aux); + cv::imshow("MASK", img_mask_aux); + cv::imshow("BKG", img_bgk_aux); + + extern_input_filename = "./outputs/input/" + boost::lexical_cast<std::string>(i)+".png"; + img_input.copyTo(extern_input_img); + if(m_saveFrame.GetCheck() == BST_CHECKED) + cv::imwrite(extern_input_filename, img_input); + + extern_fg_filename = "./outputs/foreground/" + boost::lexical_cast<std::string>(i)+".png"; + img_mask.copyTo(extern_fg_img); + if(m_saveMask.GetCheck() == BST_CHECKED) + cv::imwrite(extern_fg_filename, img_mask); + + extern_bg_filename = "./outputs/background/" + boost::lexical_cast<std::string>(i)+".png"; + img_bkg.copyTo(extern_bg_img); + if(m_saveBkg.GetCheck() == BST_CHECKED) + cv::imwrite(extern_bg_filename, img_bkg); + + strFrameNumber.Format(L"%d",i); + m_frameNumber.SetWindowTextW(strFrameNumber); + + //strExecTime.Format(_T("%.2f"), d.count()); + strExecTime.Format(_T("%d"), d.count()); + m_execTime.SetWindowTextW(strExecTime); + + ::Sleep(delay); + + }while(1); + + delete bgs; + + if(!useImgSeq) + cvReleaseCapture(&capture); + + //AfxMessageBox(L"Thread is finished!"); + m_log.SetWindowTextW(L"Finished!"); + started = false; +} + + +void CDlg::OnBnClickedStop() +{ + if(started) + { + m_log.SetWindowTextW(L"Stopping..."); + + StopThread(); + + if(!useImgSeq) + if(capture) + cvReleaseCapture(&capture); + + delete bgs; + bgs = NULL; + + m_log.SetWindowTextW(L"Stopped!"); + started = false; + } +} + +void CDlg::StopThread() +{ + DWORD exit_code = NULL; + + if(thread != NULL) + { + GetExitCodeThread(thread->m_hThread, &exit_code); + + if(exit_code == STILL_ACTIVE) + { + ::TerminateThread(thread->m_hThread, 0); + CloseHandle(thread->m_hThread); + } + + thread->m_hThread = NULL; + thread = NULL; + } +} + +void CDlg::OnBnClickedUseWebcam() +{ + if(m_useWebCam.GetCheck() == BST_CHECKED) + m_isImgSeq.SetCheck(BST_UNCHECKED); + + m_inputVideo.EnableFileBrowseButton(); +} + +void CDlg::OnBnClickedImgSeq() +{ + if(m_isImgSeq.GetCheck() == BST_CHECKED) + { + m_inputVideo.EnableFolderBrowseButton(); + m_useWebCam.SetCheck(BST_UNCHECKED); + } + else + { + m_startIdx.SetWindowTextW(L"0"); + m_stopIdx.SetWindowTextW(L"0"); + m_inputVideo.EnableFileBrowseButton(); + } +} + +void CDlg::OnBnClickedSave() +{ + if(m_saveFrame.GetCheck() == BST_CHECKED) + cv::imwrite(extern_input_filename, extern_input_img); + + if(m_saveMask.GetCheck() == BST_CHECKED) + cv::imwrite(extern_fg_filename, extern_fg_img); + + if(m_saveBkg.GetCheck() == BST_CHECKED) + cv::imwrite(extern_bg_filename, extern_bg_img); + + m_log.SetWindowTextW(L"OK! Saved!"); +} diff --git a/vs2010mfc/Dlg.h b/vs2010mfc/Dlg.h new file mode 100644 index 0000000..479d727 --- /dev/null +++ b/vs2010mfc/Dlg.h @@ -0,0 +1,92 @@ + +// Dlg.h : header file +// + +#pragma once +#include "stdafx.h" +#include "afxwin.h" +#include "afxcmn.h" + +// CDlg dialog +class CDlg : public CDialogEx +{ +// Construction +public: + CDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + enum { IDD = IDD_APP }; + + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + + +// Implementation +protected: + HICON m_hIcon; + + // Generated message map functions + virtual BOOL OnInitDialog(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + DECLARE_MESSAGE_MAP() + +private: + bool started; + CWinThread* thread; + CvCapture* capture; + IBGS* bgs; + CString methodName; + CString fileType; + bool useWebCam; + bool useImgSeq; + int webCamIndex; + int startIdx; + int stopIdx; + int extern_i; + std::string extern_input_filename; + cv::Mat extern_input_img; + std::string extern_fg_filename; + cv::Mat extern_fg_img; + std::string extern_bg_filename; + cv::Mat extern_bg_img; + + CString filePath; + +public: + afx_msg void ThreadProcess(); + static DWORD Thread(LPVOID *x); + afx_msg void StopThread(); + afx_msg bool ipDraw(HDC hdc, IplImage* img, int xoffset=0, int yoffset=0); + +public: + void addBgsList(); + bool getBgsMethodName(); + CComboBox m_bgslist; + afx_msg void OnBnClickedStart(); + CStatic m_log; + CMFCEditBrowseCtrl m_inputVideo; + bool getInputVideoFilePath(); + CButton m_useWebCam; + afx_msg void OnBnClickedStop(); + CSpinButtonCtrl m_spinWebCamIndex; + CEdit m_webCamIndex; + CStatic m_frameNumber; + CButton m_saveFrame; + CButton m_saveMask; + CButton m_saveBkg; + CButton m_isImgSeq; + CEdit m_startIdx; + CEdit m_stopIdx; + CComboBox m_fileTypeList; + bool getFileType(); + CSpinButtonCtrl m_spinStartIdx; + CSpinButtonCtrl m_spinStopIdx; + afx_msg void OnBnClickedUseWebcam(); + afx_msg void OnBnClickedImgSeq(); + CEdit m_delay; + CStatic m_execTime; + CButton m_medianFilter; + afx_msg void OnBnClickedSave(); +}; diff --git a/vs2010mfc/ReadMe.txt b/vs2010mfc/ReadMe.txt new file mode 100644 index 0000000..6c7fde0 --- /dev/null +++ b/vs2010mfc/ReadMe.txt @@ -0,0 +1,100 @@ +================================================================================ + MICROSOFT FOUNDATION CLASS LIBRARY : bgslibrary_vs2010_mfc Project Overview +=============================================================================== + +The application wizard has created this bgslibrary_vs2010_mfc application for +you. This application not only demonstrates the basics of using the Microsoft +Foundation Classes but is also a starting point for writing your application. + +This file contains a summary of what you will find in each of the files that +make up your bgslibrary_vs2010_mfc application. + +bgslibrary_vs2010_mfc.vcxproj + This is the main project file for VC++ projects generated using an application wizard. + It contains information about the version of Visual C++ that generated the file, and + information about the platforms, configurations, and project features selected with the + application wizard. + +bgslibrary_vs2010_mfc.vcxproj.filters + This is the filters file for VC++ projects generated using an Application Wizard. + It contains information about the association between the files in your project + and the filters. This association is used in the IDE to show grouping of files with + similar extensions under a specific node (for e.g. ".cpp" files are associated with the + "Source Files" filter). + +bgslibrary_vs2010_mfc.h + This is the main header file for the application. It includes other + project specific headers (including Resource.h) and declares the + CApp application class. + +bgslibrary_vs2010_mfc.cpp + This is the main application source file that contains the application + class CApp. + +bgslibrary_vs2010_mfc.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Visual C++. Your project resources are in 1033. + +res\bgslibrary_vs2010_mfc.ico + This is an icon file, which is used as the application's icon. This + icon is included by the main resource file bgslibrary_vs2010_mfc.rc. + +res\bgslibrary_vs2010_mfc.rc2 + This file contains resources that are not edited by Microsoft + Visual C++. You should place all resources not editable by + the resource editor in this file. + + +///////////////////////////////////////////////////////////////////////////// + +The application wizard creates one dialog class: + +Dlg.h, Dlg.cpp - the dialog + These files contain your CDlg class. This class defines + the behavior of your application's main dialog. The dialog's template is + in bgslibrary_vs2010_mfc.rc, which can be edited in Microsoft Visual C++. + + +///////////////////////////////////////////////////////////////////////////// + +Other Features: + +ActiveX Controls + The application includes support to use ActiveX controls. + +///////////////////////////////////////////////////////////////////////////// + +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named bgslibrary_vs2010_mfc.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Visual C++ reads and updates this file. + +bgslibrary_vs2010_mfc.manifest + Application manifest files are used by Windows XP to describe an applications + dependency on specific versions of Side-by-Side assemblies. The loader uses this + information to load the appropriate assembly from the assembly cache or private + from the application. The Application manifest maybe included for redistribution + as an external .manifest file that is installed in the same folder as the application + executable or it may be included in the executable in the form of a resource. +///////////////////////////////////////////////////////////////////////////// + +Other notes: + +The application wizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +If your application uses MFC in a shared DLL, you will need +to redistribute the MFC DLLs. If your application is in a language +other than the operating system's locale, you will also have to +redistribute the corresponding localized resources MFC100XXX.DLL. +For more information on both of these topics, please see the section on +redistributing Visual C++ applications in MSDN documentation. + +///////////////////////////////////////////////////////////////////////////// diff --git a/vs2010mfc/bgslibrary_vs2010_mfc.aps b/vs2010mfc/bgslibrary_vs2010_mfc.aps new file mode 100644 index 0000000000000000000000000000000000000000..1bacf1aade967014b3b296d7db66cf3f01aa8adc GIT binary patch literal 93224 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 V18YMg)PUM81<A;2VC@!!8UWQ{aJ>Kk literal 0 HcmV?d00001 diff --git a/vs2010mfc/bgslibrary_vs2010_mfc.rc b/vs2010mfc/bgslibrary_vs2010_mfc.rc new file mode 100644 index 0000000000000000000000000000000000000000..4b6970b8858e232ac8158e7dee28bd63029072ba GIT binary patch literal 17964 zcmezWPoF`bL4m=SA(J7Qp@<=$p_n0`A&sGgL4hHRA(Nq)p_Cz!A%{VM!I?puL7PE= zA)O(WA&()Ip@<=op@booA%#JKp@<<Btgn=zh#{FFl|g}_7;IW5LjgkxgB}Af0~Z6x z9uTd}kjaq8kj#+7P|A=3R;z@eUymV!K?$r2q64HZ4Xh7jwj)CTLoh=KLnwm_gC~PO zLp(zegDZn0gA0Q{gCBzrLnK2yLoh=mgD-;<gFk~0LonDRko|)bgZv0`8H`q7aK{qH zY2et&Wl&%!VaNc7TL^<ILj*$zgC~O@gENB<I6Pb#6c~)K#0X{_q%q`y!#|BdfdMl_ zL1u<A_%nDjxH7na!w*}$l`teS6oFGj2}2n;O(0@U8SIA?hD?Suoca?P(ikeBv5%}1 zGlf7*FJdSLr!a(CSeSvrZ}4G|>y#Nv@rE=pX%}S9;PV~KMKISXFt{@0F{Cr(fXj^x z1_cHUhERq)hD>-l5zGKeF`!bTm_ZXuDlG=56p(qK)CNkKiqJF)N)e#4MuWkT!HppT zn&*QV{24+Sf*70`Tp8jSTo`;9e8A?`Fw`(8;M5ty;K&ff;LZ@w;L6~~5Xztlw$+Eh zk-?9_ogtLLk-?n-l#gH{5OwYhJ`A1=!3-V@It&U7!3?1cP7JtI#506KOC6A3VBs|Q zXqf9@v;u<*LngSq&u2&nhYHBeAXyOhWN=|{VTfmN1edF!3?X1Tf&rw<lfjX}hru5l zav%`{a411YLk4pO2+NGY2y7~-^p0fk0f({+Lom3!c4Y`*a08d%Aq)!O_=Cv!GWavN zfK7K}2x4$#@CEAv#V<tOjlq*40$fUg%KTuc-f*y~0Sx{O0SuuG0Vtx*;PMVsZi4Cy zh+Po%5EDQ)fYJrX&**BE7#tar81flP!8N2WgByc0g93vSgF8bogAYR{LlU@NEMlmH z)?Wx8S%5=CiNTiv<i=od8J+{KSzQ=%7}6P(!19oAf{_&rhT!mWVsK?}2bc38Hz_bc zpeKVfIJ_V{OcE4dK@9N>z6_3Fy@>GBVF1ZFgToz^8$e;<%%H<y$Y25|jlgjRB9ZO% zVSv>-nD&80K>ouWCZL=X2CgTH88R928S)qu7z`Qo7)%)S7!1K7fZbgt3`THw8A4qN z3eRA0Ec=0D8B~r!(gJDjb!NzCC}5~$C}PNDNN30Z$EyZ|Gq@Z9`5qJ|pt!;3G9v~v zu=_x2br>wbaRv$v5O!g3WpD$hLQvV^!~n`SAxQD21g>RaHh^keP&^ni7&GWFm@pVJ z=rEXqV*+9}B%Qi51c6Jw0I*G<QVdc@gM1EhCnT2!fYUvwjf6XIg3LArr#vGDQwDRe zdDP6E#^6%fAM8g+P9rzhhJj08PjIOVDxE<k03<Zf^C&_FGe3h`OvwI&m;e$5m2037 z3kT;FP+Kw_92)4RgW{_I+_rIM2t#TY!^#3jh608H1_g#v22dIY)rSLBJ`hfMkovfY zp#+}yKw$%_9YYv&7>pS#!70y(!5EyrL1_h)Hci0c0!rH;3@Tr-r)-d{0)r9*$QDo@ zgQanh9iVa<l)g<EK=~NI4TQ@aCx%3ZWQJ^pbZ{FP(%u5q(WMMY3?<+aIhmmZUgG#N zq=MVf`3xxxR&bwVmWJjGIt(Ce$Y22WKWe@PmA#N22B?<-s`DWJg^{3q2r?6)E*@S_ zfZ7qD5C)kJDq}#Q3M$t?VGb($of(|KC7TO4p9g?@HsK6@&{_;83u^rYF~Dj|NJ<W4 z2xf2w>jJffAUO^q11jf1rh>{INVx%XDdF(-VF0xUP{RsR+e1RghyhYU8#92y3cUm* zY`!N$9zy}NPSs#2W5@)z-SQa}7(l(g9B^+ZpP`6BfgzJ2mmv|{;{f$BQyB^wO2K&% z)a%s58=IgK6%@9hFb9RTB?G!UK{4gW5CRQ7Sm+>VC6u%R>LG#Beh5Q61E_2Q<u-o? z9R^Shn8uLI;K~5%`;;&^fzxC;Loq`tSU)5-Kxrn30i-7g8mka-)L4SVp8-P!g9SJz z!u$Y9GoV}vsvkf#1E}POxs)`2AX)|S;F1sGCy+lt`4-g22aODX@-C#dg|vE|8N3+~ zIw9_a$b;JApip#W2x9OAw>==OX;7&QQ30x{K{Zk^gC|22gDZwANJt=u5G0kEF@WOC zkiiTZ7NAf-^*5om2_l_=`~%COpz_EO+>Zvefk5fQ6kIC7Y{Ja<Ape1CU>|5p3>NYr z8a0(5!U)n13uf>Jr;))Fwy^d&<>Bkb0LrDQXyvdkLn1>lLpC_|V-Itf3n&ZsP;eeo zU<hYOWk>?o%!v%S;MQg$irt{T8K}P)&fv=6!~m+_eZg_!1TKL}!0l2{`T&)dpjH8> z#pci8%;3S`$^c6Dpp*$J??EXVl2%c3EhM#?fKw?fObt-#OwgE$CqoF%wlpl1VCv!- zklhN&r=YSU0$f9ZQY@&h2Gt&*RwJl9&|z=|*C3AI_NG6B2bOvPq5{;@0o7xm{EC{J zK)oYkOT%D>0C4Gn&!tKXx!`fZ5{4XxVupBzQicMC6o!0;a)vwxV+JE|9D&C45dA?= zYZ=t%j0BqvtLb2BKxK$0gFAyCxTJAs@POBa2o;dHLzn|8sSxr(;L<)EJkAx#5X_*% zU<oc|AmItBCqQ*GYKw<(edY#kbAZyG0z)1{DMKzp5;z^A)}XM`DjumMjR%iNz~Tec zLISnUjTnrOdIG5B5vT<KYQKU)2UPx`V<iRyaLB^a6mp4#9QPofgHjUAE@K9e&8T*f zU$Zzdcr&<za~Y{6A0&r?@*J$bgrsv&N{8hx@@oX_Ek|DlP}?w-AqOSoQ0oa}1`q`G z&Oj|#a_fp<hD7klDX3+GXaj-9dLd<3F`5e;8N$G0U5Ho&)zs82xeOUB!Kuw0IvRjl zb`eek2tTD^tq(vgI8c3n%Wt6Z3Rpc!J)gnq7?|%Megw5wNh|dbzDr`j*6YZHryX4W zL*xbO`3{s8K{*29J5cT=-FG42aVgZ)2$}^_U`Pbd>Y%o`6~J>vAl0Ba1<ec<GuWe~ zSWpWPG}0Q(;K~pP&i~Z&GpscXsc8)vjNrXB<QOGfT0=@CP%jwd6UeMc1>U{{WUK^K zI)i!?kh%i3q=ePnureOKRECwtFm<3AD^M!}RGNe8cNYdw-EPES2`+_=!R=9)KS5)3 zkh+`xwL7E?M0MrRsMkR)3{Vb%ge53vkW;gR(h6uSgV>Z}3?0LR#2v(LYNQm<_z5DN z7&DlIQwYR-h+PBQ3IwGSR5uQdR00Y+P%8)$lH{fmH-=0G$f!jLLnQ-fv=FuB2MQfT zj}tU@0?N}MyFqOmP@f((jezQ0P@B*nKI4K~p1?{IggQ{0(i1$x63-CA5Xlh0;0hj3 zHU*DlL3{^k;el!l9R}E#(qI{Ja$x|qz7iQK@s`8p;8AkWH~=WlKrL7FF&$X>N_;sC z>Q{m0^&-K20f@N<&{7yN3jryAK_eW<{SJsI`K2=9x(d{T0`*N{F^-y&Ks6%Bjj#}b zq+iUmgn#@3G(HL%yGjJl&p<}tKy$W5C^b81mJBkt;Ku+<ZJ<yNqH-+{np=UiWgsm! zQ*c~>d`4O=@5)fYkjjt@?&HJeo<L*5kY1VwxNoY@fM|K+A5Da$3s9W`N^zhb0BR_M zYDiLgWgxYn(FIU$1+|$#xz!Tfo&k-GL+UM1D4^N`8ml8T_73Y`1cBG+lrrQnlrSJ# zrojx59tEh}0gc}3Fo5g>&1RvF_M^@*fkGZMGdwsk%ylptw2}$5UI{cG1DbP$iGyem z29246#&AI+AfPcx(6|SvZuJAtM}u@D%YepxL9@CboeB(~8As4OHmFw?!~oL`n$^?+ zkN<$$hmbj31%?3dSc3~gD1$RY2)G|dNC(VxH}FaW&>S<YZ=}Eg8WlEXNMrB;k1Rpf zOF-61DS+2PfX22$8Qj6L2zMe(f|y_k*AFUhL1WaY{z6x8fTSMOQiiSWLD=9Ap5F$! z4pg5RFc>hHK=mNhz-lB^Hz4F8t1D1d!EDAp7Y-Vg2942qGr(q?K=Zkv**92S3>y0d z^+zG=%3$>;cGD2Dpji%Q28gL3pBRAW#7r2Hz@sXVu!5<E(D+S+r~#!Z(CAetcrAkx z185F9m!W_GRN_`L_%T5G{-AOm<Qv?p3t*<9(_!HC5-`(YApojVk=NxxN<o+{Net-> z#o)C&h&2rH3}p<(44~QsRNlrj<T8L}Hc&&5IJ;42{b6>3=Kc*B^cX-GH2;q+JYnXe z`Uw=9kUA+3yj}%8%!v1m9z!a)W+25^J`A8SZqT|&P|OvetR8^*4K&XNnnkt(uY*bk zuP1=b5o3!{J@8zDBLiej2q^VJRwER{*GYlOFwi=<6b3!$>JnJkpwp;f<quuk09r!@ zax*MFfI<#b`@vjH+b|0N&x55flrn(kV$tIZU&xRWGpM$ZpXw0x9V~1yMNrF}Fz{MP zSlEKnC#j_kYOIBT$B^^Dc@i=U2dcXuaRn<~LGxjtx(1X(QAg<zu0^mwxeJ5`XRQr# z70h)o8nm(u)TV}v@*~&0Fx4QHsC6GPYgs|7{6H;eSMZuXKk!@$Zo9CT=pg-&bvB@} zY0x|ahz5<?fJ{QHhXc6~mWHsK1d|1|BitB5z;mXc^@$+=f>umHR^`A{!DvL^1Jou! zRu3ABHip*wFx3zmR3-%wX+Fp|pcyKE244&vpf)(NzfjW{#4ZK!8Z$@;f!5W4d;;k& zfa+9t6!+05Tuc}&(bi_cTuQBQ0gVe1&WFe=qhT%prDx*SVS~aQgh4t6Cx*EWMuYML zVpS<9UF0!<%0`$xhz4Oqjsm3@kS-tSsz=aVDM$tObOO=`T4@8yFQ6U~`icxlD-$$E zmJD9$1{!YxrAA0hLCVq;24e<@EQAjlw*&QpAbQOhOc+eS{Z0rUG&5obo+pIyVJl!@ zd~*gfhBUBkAoI+?YwJM0IEcInLkfc_io6M2J;<LRJ;n^F3?O|FmsWt?2kD_9%rHVS z!-Ro$ZicxDpS#iB4AKKj-H?z*EhRwmgERetTm^F-j0UYH1Fa+jwV~1(6c|Dn5*d=f zV|*|bAR2^0BQl_}8MKxhG@=h`CAfl1JKU)kG~<oAsu~u0sI(G;8qsTz^%y`9(tbh> zecWXbb=L5M!f<e6P#nSV;B+C#RUj9FXwawuXiZHCLn%W#c&!_#j}F>d0a{m<$WR3y zX&wxFDFVRz0SND<0IkUfjgEoFCO|z@(99sHjDz&~K_joAoD<K0O&w?jC1?*o6a#2% z8`Q?~1LrJIXp!Cu1cmS5#328GTn3{-<qc?r5VTGod9N2t9z=t%A-H71rcwbMPS{Hz z?ECLx;3FKUB?oAC8EBjr+s-qP8*teHi679IQ7QvyXAhxvdJIDmLkvS6T2EJr0b~yP z{y`=1z9MWp(Ucf)n*-X%2pZ>3!=naN-lOhSRARu~wT90YY$kwu@kI=%yV-D?fh#7A z$&77f@akI7xISnfCup<~wx<fTlL9mo9RThZfm;8dkx$6}O3-R!*j}q(JRt@dg9P~+ zv{w_feh#u<3t~2CKPG7H9cT?GbxZ`UP;&&Y%cHhiA>*~6nKMv%1=>|gysL4iI?#xz z0t0>awc&CFtdvFUb%Tv0;L?FT*FpCE#xTS%kTP}z+9M2F?WY7D@dA}|pjC39(G6V^ z_93T2*H?pR%pJ(Zcv2`RZQ{?<AQytx@gldpAnpXs|AR(pQ^2D=puNw@4EYS8v0IS) zK_v=kb_I7Rf>huyb8zK$+$}ajB`K&>hGCE|1}6r&5aco#4eBR?!ZwcqCIX^C7^Dgz ztH4kW-eC&bZ<+&MO$yqJ4%)vC>K7_7l!3>GLAwML7z!A27(i>bAZZ3v0)on5kXq2H zUj^_^0?>|kP`U=KcmnO@0qtf@2Jdx;jF*E}exSMwlKMa^pg<`LG+qml2hBGXgZIAX zfp?XGQV7UY$OvySLnQ-57Br^|*`Ez^G4>sM$SD!QCbR<(p%TJ^)%2w1SkMlDd}vLK zI~@jqSNoCMQU%58;KZObhm1jGA*s9P2dB?Kt^)ZCnWpsg0b}@l1!$Kns3c9rH~|8G z8v(SI9JJROU;6{(YC`Q8+-(hFbQ5k@5Mv54Z3vJ#APh-Y^lBS`Y{cCT0Lg;fgWl2x zm5iXem7Mw>R0e@k8ZByjT<%3}tAkP_q}2g(3kXBpLtL#6u>(<qgZLl}GGlOJkn3=l O*Le*2;ChMJ_5%P3lDyjh literal 0 HcmV?d00001 diff --git a/vs2010mfc/bgslibrary_vs2010_mfc.sln b/vs2010mfc/bgslibrary_vs2010_mfc.sln new file mode 100644 index 0000000..f082581 --- /dev/null +++ b/vs2010mfc/bgslibrary_vs2010_mfc.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bgslibrary_vs2010_mfc", "bgslibrary_vs2010_mfc.vcxproj", "{236E77EE-00D6-4B4E-80C7-C38847B1B60E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {236E77EE-00D6-4B4E-80C7-C38847B1B60E}.Debug|Win32.ActiveCfg = Debug|Win32 + {236E77EE-00D6-4B4E-80C7-C38847B1B60E}.Debug|Win32.Build.0 = Debug|Win32 + {236E77EE-00D6-4B4E-80C7-C38847B1B60E}.Release|Win32.ActiveCfg = Release|Win32 + {236E77EE-00D6-4B4E-80C7-C38847B1B60E}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj b/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj new file mode 100644 index 0000000..67d0fba --- /dev/null +++ b/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj @@ -0,0 +1,276 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{236E77EE-00D6-4B4E-80C7-C38847B1B60E}</ProjectGuid> + <RootNamespace>bgslibrary_vs2010_mfc</RootNamespace> + <Keyword>MFCProj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <UseOfMfc>Static</UseOfMfc> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + <UseOfMfc>Static</UseOfMfc> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>.</OutDir> + <TargetName>$(ProjectName)_x86</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + <Midl> + <MkTypLibCompatible>false</MkTypLibCompatible> + <ValidateAllParameters>true</ValidateAllParameters> + <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <Culture>0x0409</Culture> + <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>C:\OpenCV2.4.9\build\include;C:\OpenCV2.4.9\build\include\opencv;C:\boost_1_55_0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalDependencies>C:\OpenCV2.4.9\build\x86\vc10\staticlib\*.lib;C:\boost_1_55_0\stage32\lib\vc10\*.lib;comctl32.lib;VFW32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <Midl> + <MkTypLibCompatible>false</MkTypLibCompatible> + <ValidateAllParameters>true</ValidateAllParameters> + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <Culture>0x0409</Culture> + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="ReadMe.txt" /> + <None Include="res\bgslibrary_vs2010_mfc.ico" /> + <None Include="res\bgslibrary_vs2010_mfc.rc2" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="App.h" /> + <ClInclude Include="Dlg.h" /> + <ClInclude Include="..\package_bgs\AdaptiveBackgroundLearning.h" /> + <ClInclude Include="..\package_bgs\AdaptiveSelectiveBackgroundLearning.h" /> + <ClInclude Include="..\package_bgs\ae\KDE.h" /> + <ClInclude Include="..\package_bgs\ae\KernelTable.h" /> + <ClInclude Include="..\package_bgs\ae\NPBGmodel.h" /> + <ClInclude Include="..\package_bgs\ae\NPBGSubtractor.h" /> + <ClInclude Include="..\package_bgs\av\TBackground.h" /> + <ClInclude Include="..\package_bgs\av\TBackgroundVuMeter.h" /> + <ClInclude Include="..\package_bgs\av\VuMeter.h" /> + <ClInclude Include="..\package_bgs\bl\sdLaMa091.h" /> + <ClInclude Include="..\package_bgs\bl\SigmaDeltaBGS.h" /> + <ClInclude Include="..\package_bgs\bl\stdbool.h" /> + <ClInclude Include="..\package_bgs\db\imbs.hpp" /> + <ClInclude Include="..\package_bgs\db\IndependentMultimodalBGS.h" /> + <ClInclude Include="..\package_bgs\dp\AdaptiveMedianBGS.h" /> + <ClInclude Include="..\package_bgs\dp\Bgs.h" /> + <ClInclude Include="..\package_bgs\dp\BgsParams.h" /> + <ClInclude Include="..\package_bgs\dp\DPAdaptiveMedianBGS.h" /> + <ClInclude Include="..\package_bgs\dp\DPEigenbackgroundBGS.h" /> + <ClInclude Include="..\package_bgs\dp\DPGrimsonGMMBGS.h" /> + <ClInclude Include="..\package_bgs\dp\DPMeanBGS.h" /> + <ClInclude Include="..\package_bgs\dp\DPPratiMediodBGS.h" /> + <ClInclude Include="..\package_bgs\dp\DPTextureBGS.h" /> + <ClInclude Include="..\package_bgs\dp\DPWrenGABGS.h" /> + <ClInclude Include="..\package_bgs\dp\DPZivkovicAGMMBGS.h" /> + <ClInclude Include="..\package_bgs\dp\Eigenbackground.h" /> + <ClInclude Include="..\package_bgs\dp\Error.h" /> + <ClInclude Include="..\package_bgs\dp\GrimsonGMM.h" /> + <ClInclude Include="..\package_bgs\dp\Image.h" /> + <ClInclude Include="..\package_bgs\dp\MeanBGS.h" /> + <ClInclude Include="..\package_bgs\dp\PratiMediodBGS.h" /> + <ClInclude Include="..\package_bgs\dp\TextureBGS.h" /> + <ClInclude Include="..\package_bgs\dp\WrenGA.h" /> + <ClInclude Include="..\package_bgs\dp\ZivkovicAGMM.h" /> + <ClInclude Include="..\package_bgs\FrameDifferenceBGS.h" /> + <ClInclude Include="..\package_bgs\GMG.h" /> + <ClInclude Include="..\package_bgs\IBGS.h" /> + <ClInclude Include="..\package_bgs\jmo\BackgroundSubtractionAPI.h" /> + <ClInclude Include="..\package_bgs\jmo\BGS.h" /> + <ClInclude Include="..\package_bgs\jmo\blob.h" /> + <ClInclude Include="..\package_bgs\jmo\BlobExtraction.h" /> + <ClInclude Include="..\package_bgs\jmo\BlobLibraryConfiguration.h" /> + <ClInclude Include="..\package_bgs\jmo\BlobResult.h" /> + <ClInclude Include="..\package_bgs\jmo\CMultiLayerBGS.h" /> + <ClInclude Include="..\package_bgs\jmo\LocalBinaryPattern.h" /> + <ClInclude Include="..\package_bgs\jmo\MultiLayerBGS.h" /> + <ClInclude Include="..\package_bgs\jmo\OpenCvDataConversion.h" /> + <ClInclude Include="..\package_bgs\lb\BGModel.h" /> + <ClInclude Include="..\package_bgs\lb\BGModelFuzzyGauss.h" /> + <ClInclude Include="..\package_bgs\lb\BGModelFuzzySom.h" /> + <ClInclude Include="..\package_bgs\lb\BGModelGauss.h" /> + <ClInclude Include="..\package_bgs\lb\BGModelMog.h" /> + <ClInclude Include="..\package_bgs\lb\BGModelSom.h" /> + <ClInclude Include="..\package_bgs\lb\LBAdaptiveSOM.h" /> + <ClInclude Include="..\package_bgs\lb\LBFuzzyAdaptiveSOM.h" /> + <ClInclude Include="..\package_bgs\lb\LBFuzzyGaussian.h" /> + <ClInclude Include="..\package_bgs\lb\LBMixtureOfGaussians.h" /> + <ClInclude Include="..\package_bgs\lb\LBSimpleGaussian.h" /> + <ClInclude Include="..\package_bgs\lb\Types.h" /> + <ClInclude Include="..\package_bgs\MixtureOfGaussianV1BGS.h" /> + <ClInclude Include="..\package_bgs\MixtureOfGaussianV2BGS.h" /> + <ClInclude Include="..\package_bgs\sjn\SJN_MultiCueBGS.h" /> + <ClInclude Include="..\package_bgs\StaticFrameDifferenceBGS.h" /> + <ClInclude Include="..\package_bgs\tb\FuzzyChoquetIntegral.h" /> + <ClInclude Include="..\package_bgs\tb\FuzzySugenoIntegral.h" /> + <ClInclude Include="..\package_bgs\tb\FuzzyUtils.h" /> + <ClInclude Include="..\package_bgs\tb\MRF.h" /> + <ClInclude Include="..\package_bgs\tb\PerformanceUtils.h" /> + <ClInclude Include="..\package_bgs\tb\PixelUtils.h" /> + <ClInclude Include="..\package_bgs\tb\T2FGMM.h" /> + <ClInclude Include="..\package_bgs\tb\T2FGMM_UM.h" /> + <ClInclude Include="..\package_bgs\tb\T2FGMM_UV.h" /> + <ClInclude Include="..\package_bgs\tb\T2FMRF.h" /> + <ClInclude Include="..\package_bgs\tb\T2FMRF_UM.h" /> + <ClInclude Include="..\package_bgs\tb\T2FMRF_UV.h" /> + <ClInclude Include="..\package_bgs\WeightedMovingMeanBGS.h" /> + <ClInclude Include="..\package_bgs\WeightedMovingVarianceBGS.h" /> + <ClInclude Include="Resource.h" /> + <ClInclude Include="stdafx.h" /> + <ClInclude Include="targetver.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="App.cpp" /> + <ClCompile Include="Dlg.cpp" /> + <ClCompile Include="..\package_bgs\AdaptiveBackgroundLearning.cpp" /> + <ClCompile Include="..\package_bgs\AdaptiveSelectiveBackgroundLearning.cpp" /> + <ClCompile Include="..\package_bgs\ae\KDE.cpp" /> + <ClCompile Include="..\package_bgs\ae\KernelTable.cpp" /> + <ClCompile Include="..\package_bgs\ae\NPBGmodel.cpp" /> + <ClCompile Include="..\package_bgs\ae\NPBGSubtractor.cpp" /> + <ClCompile Include="..\package_bgs\av\TBackground.cpp" /> + <ClCompile Include="..\package_bgs\av\TBackgroundVuMeter.cpp" /> + <ClCompile Include="..\package_bgs\av\VuMeter.cpp" /> + <ClCompile Include="..\package_bgs\bl\sdLaMa091.cpp" /> + <ClCompile Include="..\package_bgs\bl\SigmaDeltaBGS.cpp" /> + <ClCompile Include="..\package_bgs\db\imbs.cpp" /> + <ClCompile Include="..\package_bgs\db\IndependentMultimodalBGS.cpp" /> + <ClCompile Include="..\package_bgs\dp\AdaptiveMedianBGS.cpp" /> + <ClCompile Include="..\package_bgs\dp\DPAdaptiveMedianBGS.cpp" /> + <ClCompile Include="..\package_bgs\dp\DPEigenbackgroundBGS.cpp" /> + <ClCompile Include="..\package_bgs\dp\DPGrimsonGMMBGS.cpp" /> + <ClCompile Include="..\package_bgs\dp\DPMeanBGS.cpp" /> + <ClCompile Include="..\package_bgs\dp\DPPratiMediodBGS.cpp" /> + <ClCompile Include="..\package_bgs\dp\DPTextureBGS.cpp" /> + <ClCompile Include="..\package_bgs\dp\DPWrenGABGS.cpp" /> + <ClCompile Include="..\package_bgs\dp\DPZivkovicAGMMBGS.cpp" /> + <ClCompile Include="..\package_bgs\dp\Eigenbackground.cpp" /> + <ClCompile Include="..\package_bgs\dp\Error.cpp" /> + <ClCompile Include="..\package_bgs\dp\GrimsonGMM.cpp" /> + <ClCompile Include="..\package_bgs\dp\Image.cpp" /> + <ClCompile Include="..\package_bgs\dp\MeanBGS.cpp" /> + <ClCompile Include="..\package_bgs\dp\PratiMediodBGS.cpp" /> + <ClCompile Include="..\package_bgs\dp\TextureBGS.cpp" /> + <ClCompile Include="..\package_bgs\dp\WrenGA.cpp" /> + <ClCompile Include="..\package_bgs\dp\ZivkovicAGMM.cpp" /> + <ClCompile Include="..\package_bgs\FrameDifferenceBGS.cpp" /> + <ClCompile Include="..\package_bgs\GMG.cpp" /> + <ClCompile Include="..\package_bgs\jmo\blob.cpp" /> + <ClCompile Include="..\package_bgs\jmo\BlobExtraction.cpp" /> + <ClCompile Include="..\package_bgs\jmo\BlobResult.cpp" /> + <ClCompile Include="..\package_bgs\jmo\CMultiLayerBGS.cpp" /> + <ClCompile Include="..\package_bgs\jmo\LocalBinaryPattern.cpp" /> + <ClCompile Include="..\package_bgs\jmo\MultiLayerBGS.cpp" /> + <ClCompile Include="..\package_bgs\lb\BGModel.cpp" /> + <ClCompile Include="..\package_bgs\lb\BGModelFuzzyGauss.cpp" /> + <ClCompile Include="..\package_bgs\lb\BGModelFuzzySom.cpp" /> + <ClCompile Include="..\package_bgs\lb\BGModelGauss.cpp" /> + <ClCompile Include="..\package_bgs\lb\BGModelMog.cpp" /> + <ClCompile Include="..\package_bgs\lb\BGModelSom.cpp" /> + <ClCompile Include="..\package_bgs\lb\LBAdaptiveSOM.cpp" /> + <ClCompile Include="..\package_bgs\lb\LBFuzzyAdaptiveSOM.cpp" /> + <ClCompile Include="..\package_bgs\lb\LBFuzzyGaussian.cpp" /> + <ClCompile Include="..\package_bgs\lb\LBMixtureOfGaussians.cpp" /> + <ClCompile Include="..\package_bgs\lb\LBSimpleGaussian.cpp" /> + <ClCompile Include="..\package_bgs\MixtureOfGaussianV1BGS.cpp" /> + <ClCompile Include="..\package_bgs\MixtureOfGaussianV2BGS.cpp" /> + <ClCompile Include="..\package_bgs\sjn\SJN_MultiCueBGS.cpp" /> + <ClCompile Include="..\package_bgs\StaticFrameDifferenceBGS.cpp" /> + <ClCompile Include="..\package_bgs\tb\FuzzyChoquetIntegral.cpp" /> + <ClCompile Include="..\package_bgs\tb\FuzzySugenoIntegral.cpp" /> + <ClCompile Include="..\package_bgs\tb\FuzzyUtils.cpp" /> + <ClCompile Include="..\package_bgs\tb\MRF.cpp" /> + <ClCompile Include="..\package_bgs\tb\PerformanceUtils.cpp" /> + <ClCompile Include="..\package_bgs\tb\PixelUtils.cpp" /> + <ClCompile Include="..\package_bgs\tb\T2FGMM.cpp" /> + <ClCompile Include="..\package_bgs\tb\T2FGMM_UM.cpp" /> + <ClCompile Include="..\package_bgs\tb\T2FGMM_UV.cpp" /> + <ClCompile Include="..\package_bgs\tb\T2FMRF.cpp" /> + <ClCompile Include="..\package_bgs\tb\T2FMRF_UM.cpp" /> + <ClCompile Include="..\package_bgs\tb\T2FMRF_UV.cpp" /> + <ClCompile Include="..\package_bgs\WeightedMovingMeanBGS.cpp" /> + <ClCompile Include="..\package_bgs\WeightedMovingVarianceBGS.cpp" /> + <ClCompile Include="stdafx.cpp"> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="bgslibrary_vs2010_mfc.rc" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> + <ProjectExtensions> + <VisualStudio> + <UserProperties RESOURCE_FILE="bgslibrary_vs2010_mfc.rc" /> + </VisualStudio> + </ProjectExtensions> +</Project> \ No newline at end of file diff --git a/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj.filters b/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj.filters new file mode 100644 index 0000000..434547c --- /dev/null +++ b/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj.filters @@ -0,0 +1,524 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + <Filter Include="Header Files\package_bgs"> + <UniqueIdentifier>{be6b45b0-e96c-4347-a65e-a72506b4195f}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\package_bgs\av"> + <UniqueIdentifier>{c4756493-26d9-46f4-93d6-024b4d1ca61a}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\package_bgs\dp"> + <UniqueIdentifier>{a3dff805-136a-4fc5-a8e9-a7eadebcd6f2}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\package_bgs\jmo"> + <UniqueIdentifier>{d9c40f02-d18f-46bb-a956-522e83a8a2e7}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\package_bgs\lb"> + <UniqueIdentifier>{77576fcd-de50-4205-8072-cb25a1aab145}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\package_bgs\tb"> + <UniqueIdentifier>{50f16e47-ef1d-46b0-a0cb-f7c07599cd21}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\package_bgs\ae"> + <UniqueIdentifier>{704bbcb4-9bbe-4fe1-8a80-78ee8d7f49c5}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\package_bgs\sjn"> + <UniqueIdentifier>{d365878b-8639-4bfd-8008-adb158c9cd8b}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\package_bgs\db"> + <UniqueIdentifier>{f7961eef-2755-4712-a9b7-1b840b7936b1}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\package_bgs\bl"> + <UniqueIdentifier>{e23418b4-562b-41ae-bd15-e9ad45ece1d1}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="ReadMe.txt" /> + <None Include="res\bgslibrary_vs2010_mfc.rc2"> + <Filter>Resource Files</Filter> + </None> + <None Include="res\bgslibrary_vs2010_mfc.ico"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClInclude Include="Dlg.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="stdafx.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="targetver.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Resource.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="App.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\AdaptiveBackgroundLearning.h"> + <Filter>Header Files\package_bgs</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\FrameDifferenceBGS.h"> + <Filter>Header Files\package_bgs</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\GMG.h"> + <Filter>Header Files\package_bgs</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\IBGS.h"> + <Filter>Header Files\package_bgs</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\MixtureOfGaussianV1BGS.h"> + <Filter>Header Files\package_bgs</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\MixtureOfGaussianV2BGS.h"> + <Filter>Header Files\package_bgs</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\StaticFrameDifferenceBGS.h"> + <Filter>Header Files\package_bgs</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\WeightedMovingMeanBGS.h"> + <Filter>Header Files\package_bgs</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\WeightedMovingVarianceBGS.h"> + <Filter>Header Files\package_bgs</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\av\TBackground.h"> + <Filter>Header Files\package_bgs\av</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\av\TBackgroundVuMeter.h"> + <Filter>Header Files\package_bgs\av</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\av\VuMeter.h"> + <Filter>Header Files\package_bgs\av</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\jmo\BackgroundSubtractionAPI.h"> + <Filter>Header Files\package_bgs\jmo</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\jmo\BGS.h"> + <Filter>Header Files\package_bgs\jmo</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\jmo\blob.h"> + <Filter>Header Files\package_bgs\jmo</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\jmo\BlobExtraction.h"> + <Filter>Header Files\package_bgs\jmo</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\jmo\BlobLibraryConfiguration.h"> + <Filter>Header Files\package_bgs\jmo</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\jmo\BlobResult.h"> + <Filter>Header Files\package_bgs\jmo</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\jmo\CMultiLayerBGS.h"> + <Filter>Header Files\package_bgs\jmo</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\jmo\LocalBinaryPattern.h"> + <Filter>Header Files\package_bgs\jmo</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\jmo\MultiLayerBGS.h"> + <Filter>Header Files\package_bgs\jmo</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\jmo\OpenCvDataConversion.h"> + <Filter>Header Files\package_bgs\jmo</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\lb\BGModel.h"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\lb\BGModelFuzzyGauss.h"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\lb\BGModelFuzzySom.h"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\lb\BGModelGauss.h"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\lb\BGModelMog.h"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\lb\BGModelSom.h"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\lb\LBAdaptiveSOM.h"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\lb\LBFuzzyAdaptiveSOM.h"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\lb\LBFuzzyGaussian.h"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\lb\LBMixtureOfGaussians.h"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\lb\LBSimpleGaussian.h"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\lb\Types.h"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\tb\FuzzyChoquetIntegral.h"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\tb\FuzzySugenoIntegral.h"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\tb\FuzzyUtils.h"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\tb\MRF.h"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\tb\PerformanceUtils.h"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\tb\PixelUtils.h"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\tb\T2FGMM.h"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\tb\T2FGMM_UM.h"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\tb\T2FGMM_UV.h"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\tb\T2FMRF.h"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\tb\T2FMRF_UM.h"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\tb\T2FMRF_UV.h"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\ae\KDE.h"> + <Filter>Header Files\package_bgs\ae</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\ae\KernelTable.h"> + <Filter>Header Files\package_bgs\ae</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\ae\NPBGmodel.h"> + <Filter>Header Files\package_bgs\ae</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\ae\NPBGSubtractor.h"> + <Filter>Header Files\package_bgs\ae</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\AdaptiveMedianBGS.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\Bgs.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\BgsParams.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\DPAdaptiveMedianBGS.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\DPEigenbackgroundBGS.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\DPGrimsonGMMBGS.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\DPMeanBGS.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\DPPratiMediodBGS.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\DPTextureBGS.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\DPWrenGABGS.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\DPZivkovicAGMMBGS.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\Eigenbackground.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\Error.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\GrimsonGMM.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\Image.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\MeanBGS.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\PratiMediodBGS.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\TextureBGS.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\WrenGA.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\dp\ZivkovicAGMM.h"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\sjn\SJN_MultiCueBGS.h"> + <Filter>Header Files\package_bgs\sjn</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\db\imbs.hpp"> + <Filter>Header Files\package_bgs\db</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\db\IndependentMultimodalBGS.h"> + <Filter>Header Files\package_bgs\db</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\AdaptiveSelectiveBackgroundLearning.h"> + <Filter>Header Files\package_bgs</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\bl\sdLaMa091.h"> + <Filter>Header Files\package_bgs\bl</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\bl\SigmaDeltaBGS.h"> + <Filter>Header Files\package_bgs\bl</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\bl\stdbool.h"> + <Filter>Header Files\package_bgs\bl</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="Dlg.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="stdafx.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="App.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\AdaptiveBackgroundLearning.cpp"> + <Filter>Header Files\package_bgs</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\FrameDifferenceBGS.cpp"> + <Filter>Header Files\package_bgs</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\GMG.cpp"> + <Filter>Header Files\package_bgs</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\MixtureOfGaussianV1BGS.cpp"> + <Filter>Header Files\package_bgs</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\MixtureOfGaussianV2BGS.cpp"> + <Filter>Header Files\package_bgs</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\StaticFrameDifferenceBGS.cpp"> + <Filter>Header Files\package_bgs</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\WeightedMovingMeanBGS.cpp"> + <Filter>Header Files\package_bgs</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\WeightedMovingVarianceBGS.cpp"> + <Filter>Header Files\package_bgs</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\av\TBackground.cpp"> + <Filter>Header Files\package_bgs\av</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\av\TBackgroundVuMeter.cpp"> + <Filter>Header Files\package_bgs\av</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\av\VuMeter.cpp"> + <Filter>Header Files\package_bgs\av</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\jmo\blob.cpp"> + <Filter>Header Files\package_bgs\jmo</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\jmo\BlobExtraction.cpp"> + <Filter>Header Files\package_bgs\jmo</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\jmo\BlobResult.cpp"> + <Filter>Header Files\package_bgs\jmo</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\jmo\CMultiLayerBGS.cpp"> + <Filter>Header Files\package_bgs\jmo</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\jmo\LocalBinaryPattern.cpp"> + <Filter>Header Files\package_bgs\jmo</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\jmo\MultiLayerBGS.cpp"> + <Filter>Header Files\package_bgs\jmo</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\lb\BGModel.cpp"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\lb\BGModelFuzzyGauss.cpp"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\lb\BGModelFuzzySom.cpp"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\lb\BGModelGauss.cpp"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\lb\BGModelMog.cpp"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\lb\BGModelSom.cpp"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\lb\LBAdaptiveSOM.cpp"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\lb\LBFuzzyAdaptiveSOM.cpp"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\lb\LBFuzzyGaussian.cpp"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\lb\LBMixtureOfGaussians.cpp"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\lb\LBSimpleGaussian.cpp"> + <Filter>Header Files\package_bgs\lb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\tb\FuzzyChoquetIntegral.cpp"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\tb\FuzzySugenoIntegral.cpp"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\tb\FuzzyUtils.cpp"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\tb\MRF.cpp"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\tb\PerformanceUtils.cpp"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\tb\PixelUtils.cpp"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\tb\T2FGMM.cpp"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\tb\T2FGMM_UM.cpp"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\tb\T2FGMM_UV.cpp"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\tb\T2FMRF.cpp"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\tb\T2FMRF_UM.cpp"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\tb\T2FMRF_UV.cpp"> + <Filter>Header Files\package_bgs\tb</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\ae\KDE.cpp"> + <Filter>Header Files\package_bgs\ae</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\ae\KernelTable.cpp"> + <Filter>Header Files\package_bgs\ae</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\ae\NPBGmodel.cpp"> + <Filter>Header Files\package_bgs\ae</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\ae\NPBGSubtractor.cpp"> + <Filter>Header Files\package_bgs\ae</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\AdaptiveMedianBGS.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\DPAdaptiveMedianBGS.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\DPEigenbackgroundBGS.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\DPGrimsonGMMBGS.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\DPMeanBGS.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\DPPratiMediodBGS.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\DPTextureBGS.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\DPWrenGABGS.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\DPZivkovicAGMMBGS.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\Eigenbackground.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\Error.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\GrimsonGMM.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\Image.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\MeanBGS.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\PratiMediodBGS.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\TextureBGS.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\WrenGA.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\dp\ZivkovicAGMM.cpp"> + <Filter>Header Files\package_bgs\dp</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\sjn\SJN_MultiCueBGS.cpp"> + <Filter>Header Files\package_bgs\sjn</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\db\imbs.cpp"> + <Filter>Header Files\package_bgs\db</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\db\IndependentMultimodalBGS.cpp"> + <Filter>Header Files\package_bgs\db</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\AdaptiveSelectiveBackgroundLearning.cpp"> + <Filter>Header Files\package_bgs</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\bl\sdLaMa091.cpp"> + <Filter>Header Files\package_bgs\bl</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\bl\SigmaDeltaBGS.cpp"> + <Filter>Header Files\package_bgs\bl</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="bgslibrary_vs2010_mfc.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj.user b/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj.user new file mode 100644 index 0000000..ace9a86 --- /dev/null +++ b/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/vs2010mfc/config/AdaptiveBackgroundLearning.xml b/vs2010mfc/config/AdaptiveBackgroundLearning.xml new file mode 100644 index 0000000..313e1d4 --- /dev/null +++ b/vs2010mfc/config/AdaptiveBackgroundLearning.xml @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<opencv_storage> +<alpha>5.0000000000000003e-002</alpha> +<limit>-1</limit> +<enableThreshold>1</enableThreshold> +<threshold>15</threshold> +<showForeground>0</showForeground> +<showBackground>0</showBackground> +</opencv_storage> diff --git a/vs2010mfc/config/AdaptiveSelectiveBackgroundLearning.xml b/vs2010mfc/config/AdaptiveSelectiveBackgroundLearning.xml new file mode 100644 index 0000000..f175558 --- /dev/null +++ b/vs2010mfc/config/AdaptiveSelectiveBackgroundLearning.xml @@ -0,0 +1,8 @@ +<?xml version="1.0"?> +<opencv_storage> +<learningFrames>90</learningFrames> +<alphaLearn>5.0000000000000003e-002</alphaLearn> +<alphaDetection>5.0000000000000003e-002</alphaDetection> +<threshold>25</threshold> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/DPAdaptiveMedianBGS.xml b/vs2010mfc/config/DPAdaptiveMedianBGS.xml new file mode 100644 index 0000000..8d09e85 --- /dev/null +++ b/vs2010mfc/config/DPAdaptiveMedianBGS.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<opencv_storage> +<threshold>40</threshold> +<samplingRate>7</samplingRate> +<learningFrames>30</learningFrames> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/DPEigenbackgroundBGS.xml b/vs2010mfc/config/DPEigenbackgroundBGS.xml new file mode 100644 index 0000000..d610426 --- /dev/null +++ b/vs2010mfc/config/DPEigenbackgroundBGS.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<opencv_storage> +<threshold>225</threshold> +<historySize>20</historySize> +<embeddedDim>10</embeddedDim> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/DPGrimsonGMMBGS.xml b/vs2010mfc/config/DPGrimsonGMMBGS.xml new file mode 100644 index 0000000..8ade44f --- /dev/null +++ b/vs2010mfc/config/DPGrimsonGMMBGS.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<opencv_storage> +<threshold>9.</threshold> +<alpha>1.0000000000000000e-002</alpha> +<gaussians>3</gaussians> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/DPMeanBGS.xml b/vs2010mfc/config/DPMeanBGS.xml new file mode 100644 index 0000000..9bd59a8 --- /dev/null +++ b/vs2010mfc/config/DPMeanBGS.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<opencv_storage> +<threshold>2700</threshold> +<alpha>9.9999999747524271e-007</alpha> +<learningFrames>30</learningFrames> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/DPPratiMediodBGS.xml b/vs2010mfc/config/DPPratiMediodBGS.xml new file mode 100644 index 0000000..fdf20b4 --- /dev/null +++ b/vs2010mfc/config/DPPratiMediodBGS.xml @@ -0,0 +1,8 @@ +<?xml version="1.0"?> +<opencv_storage> +<threshold>30</threshold> +<samplingRate>5</samplingRate> +<historySize>16</historySize> +<weight>5</weight> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/DPTextureBGS.xml b/vs2010mfc/config/DPTextureBGS.xml new file mode 100644 index 0000000..0d63e78 --- /dev/null +++ b/vs2010mfc/config/DPTextureBGS.xml @@ -0,0 +1,4 @@ +<?xml version="1.0"?> +<opencv_storage> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/DPWrenGABGS.xml b/vs2010mfc/config/DPWrenGABGS.xml new file mode 100644 index 0000000..7eaa78b --- /dev/null +++ b/vs2010mfc/config/DPWrenGABGS.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<opencv_storage> +<threshold>1.2250000000000000e+001</threshold> +<alpha>4.9999998882412910e-003</alpha> +<learningFrames>30</learningFrames> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/DPZivkovicAGMMBGS.xml b/vs2010mfc/config/DPZivkovicAGMMBGS.xml new file mode 100644 index 0000000..98ee82a --- /dev/null +++ b/vs2010mfc/config/DPZivkovicAGMMBGS.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<opencv_storage> +<threshold>25.</threshold> +<alpha>1.0000000474974513e-003</alpha> +<gaussians>3</gaussians> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/FrameDifferenceBGS.xml b/vs2010mfc/config/FrameDifferenceBGS.xml new file mode 100644 index 0000000..943a6c9 --- /dev/null +++ b/vs2010mfc/config/FrameDifferenceBGS.xml @@ -0,0 +1,6 @@ +<?xml version="1.0"?> +<opencv_storage> +<enableThreshold>1</enableThreshold> +<threshold>15</threshold> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/FuzzyChoquetIntegral.xml b/vs2010mfc/config/FuzzyChoquetIntegral.xml new file mode 100644 index 0000000..22074aa --- /dev/null +++ b/vs2010mfc/config/FuzzyChoquetIntegral.xml @@ -0,0 +1,11 @@ +<?xml version="1.0"?> +<opencv_storage> +<showOutput>0</showOutput> +<framesToLearn>10</framesToLearn> +<alphaLearn>1.0000000000000001e-001</alphaLearn> +<alphaUpdate>1.0000000000000000e-002</alphaUpdate> +<colorSpace>1</colorSpace> +<option>2</option> +<smooth>1</smooth> +<threshold>6.7000000000000004e-001</threshold> +</opencv_storage> diff --git a/vs2010mfc/config/FuzzySugenoIntegral.xml b/vs2010mfc/config/FuzzySugenoIntegral.xml new file mode 100644 index 0000000..22074aa --- /dev/null +++ b/vs2010mfc/config/FuzzySugenoIntegral.xml @@ -0,0 +1,11 @@ +<?xml version="1.0"?> +<opencv_storage> +<showOutput>0</showOutput> +<framesToLearn>10</framesToLearn> +<alphaLearn>1.0000000000000001e-001</alphaLearn> +<alphaUpdate>1.0000000000000000e-002</alphaUpdate> +<colorSpace>1</colorSpace> +<option>2</option> +<smooth>1</smooth> +<threshold>6.7000000000000004e-001</threshold> +</opencv_storage> diff --git a/vs2010mfc/config/GMG.xml b/vs2010mfc/config/GMG.xml new file mode 100644 index 0000000..e3ebdc7 --- /dev/null +++ b/vs2010mfc/config/GMG.xml @@ -0,0 +1,6 @@ +<?xml version="1.0"?> +<opencv_storage> +<initializationFrames>20</initializationFrames> +<decisionThreshold>6.9999999999999996e-001</decisionThreshold> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/IndependentMultimodalBGS.xml b/vs2010mfc/config/IndependentMultimodalBGS.xml new file mode 100644 index 0000000..0d63e78 --- /dev/null +++ b/vs2010mfc/config/IndependentMultimodalBGS.xml @@ -0,0 +1,4 @@ +<?xml version="1.0"?> +<opencv_storage> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/KDE.xml b/vs2010mfc/config/KDE.xml new file mode 100644 index 0000000..c9b7402 --- /dev/null +++ b/vs2010mfc/config/KDE.xml @@ -0,0 +1,11 @@ +<?xml version="1.0"?> +<opencv_storage> +<framesToLearn>10</framesToLearn> +<SequenceLength>50</SequenceLength> +<TimeWindowSize>100</TimeWindowSize> +<SDEstimationFlag>1</SDEstimationFlag> +<lUseColorRatiosFlag>1</lUseColorRatiosFlag> +<th>9.9999999999999995e-008</th> +<alpha>2.9999999999999999e-001</alpha> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/LBAdaptiveSOM.xml b/vs2010mfc/config/LBAdaptiveSOM.xml new file mode 100644 index 0000000..94b2570 --- /dev/null +++ b/vs2010mfc/config/LBAdaptiveSOM.xml @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<opencv_storage> +<sensitivity>75</sensitivity> +<trainingSensitivity>245</trainingSensitivity> +<learningRate>62</learningRate> +<trainingLearningRate>255</trainingLearningRate> +<trainingSteps>55</trainingSteps> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/LBFuzzyAdaptiveSOM.xml b/vs2010mfc/config/LBFuzzyAdaptiveSOM.xml new file mode 100644 index 0000000..7168563 --- /dev/null +++ b/vs2010mfc/config/LBFuzzyAdaptiveSOM.xml @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<opencv_storage> +<sensitivity>90</sensitivity> +<trainingSensitivity>240</trainingSensitivity> +<learningRate>38</learningRate> +<trainingLearningRate>255</trainingLearningRate> +<trainingSteps>81</trainingSteps> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/LBFuzzyGaussian.xml b/vs2010mfc/config/LBFuzzyGaussian.xml new file mode 100644 index 0000000..18635a1 --- /dev/null +++ b/vs2010mfc/config/LBFuzzyGaussian.xml @@ -0,0 +1,8 @@ +<?xml version="1.0"?> +<opencv_storage> +<sensitivity>72</sensitivity> +<bgThreshold>162</bgThreshold> +<learningRate>49</learningRate> +<noiseVariance>195</noiseVariance> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/LBMixtureOfGaussians.xml b/vs2010mfc/config/LBMixtureOfGaussians.xml new file mode 100644 index 0000000..2273720 --- /dev/null +++ b/vs2010mfc/config/LBMixtureOfGaussians.xml @@ -0,0 +1,8 @@ +<?xml version="1.0"?> +<opencv_storage> +<sensitivity>81</sensitivity> +<bgThreshold>83</bgThreshold> +<learningRate>59</learningRate> +<noiseVariance>206</noiseVariance> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/LBSimpleGaussian.xml b/vs2010mfc/config/LBSimpleGaussian.xml new file mode 100644 index 0000000..a803f3f --- /dev/null +++ b/vs2010mfc/config/LBSimpleGaussian.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<opencv_storage> +<sensitivity>66</sensitivity> +<noiseVariance>162</noiseVariance> +<learningRate>18</learningRate> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/MixtureOfGaussianV1BGS.xml b/vs2010mfc/config/MixtureOfGaussianV1BGS.xml new file mode 100644 index 0000000..1e09ceb --- /dev/null +++ b/vs2010mfc/config/MixtureOfGaussianV1BGS.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<opencv_storage> +<alpha>5.0000000000000003e-002</alpha> +<enableThreshold>1</enableThreshold> +<threshold>15</threshold> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/MixtureOfGaussianV2BGS.xml b/vs2010mfc/config/MixtureOfGaussianV2BGS.xml new file mode 100644 index 0000000..1e09ceb --- /dev/null +++ b/vs2010mfc/config/MixtureOfGaussianV2BGS.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<opencv_storage> +<alpha>5.0000000000000003e-002</alpha> +<enableThreshold>1</enableThreshold> +<threshold>15</threshold> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/MultiCueBGS.xml b/vs2010mfc/config/MultiCueBGS.xml new file mode 100644 index 0000000..0d63e78 --- /dev/null +++ b/vs2010mfc/config/MultiCueBGS.xml @@ -0,0 +1,4 @@ +<?xml version="1.0"?> +<opencv_storage> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/MultiLayerBGS.xml b/vs2010mfc/config/MultiLayerBGS.xml new file mode 100644 index 0000000..9b803db --- /dev/null +++ b/vs2010mfc/config/MultiLayerBGS.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<opencv_storage> +<preloadModel>"./models/MultiLayerBGSModel.yml"</preloadModel> +<saveModel>0</saveModel> +<detectAfter>0</detectAfter> +<disableDetectMode>1</disableDetectMode> +<disableLearningInDetecMode>0</disableLearningInDetecMode> +<loadDefaultParams>1</loadDefaultParams> +<max_mode_num>5</max_mode_num> +<weight_updating_constant>5.</weight_updating_constant> +<texture_weight>5.0000000000000000e-001</texture_weight> +<bg_mode_percent>6.0000002384185791e-001</bg_mode_percent> +<pattern_neig_half_size>4</pattern_neig_half_size> +<pattern_neig_gaus_sigma>3.</pattern_neig_gaus_sigma> +<bg_prob_threshold>2.0000000298023224e-001</bg_prob_threshold> +<bg_prob_updating_threshold>2.0000000298023224e-001</bg_prob_updating_threshold> +<robust_LBP_constant>3</robust_LBP_constant> +<min_noised_angle>1.7453293502330780e-001</min_noised_angle> +<shadow_rate>6.0000002384185791e-001</shadow_rate> +<highlight_rate>1.2000000476837158e+000</highlight_rate> +<bilater_filter_sigma_s>3.</bilater_filter_sigma_s> +<bilater_filter_sigma_r>1.0000000149011612e-001</bilater_filter_sigma_r> +<frame_duration>1.0000000149011612e-001</frame_duration> +<learn_mode_learn_rate_per_second>5.0000000000000000e-001</learn_mode_learn_rate_per_second> +<learn_weight_learn_rate_per_second>5.0000000000000000e-001</learn_weight_learn_rate_per_second> +<learn_init_mode_weight>5.0000000745058060e-002</learn_init_mode_weight> +<detect_mode_learn_rate_per_second>9.9999997764825821e-003</detect_mode_learn_rate_per_second> +<detect_weight_learn_rate_per_second>9.9999997764825821e-003</detect_weight_learn_rate_per_second> +<detect_init_mode_weight>1.0000000474974513e-003</detect_init_mode_weight> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/SigmaDeltaBGS.xml b/vs2010mfc/config/SigmaDeltaBGS.xml new file mode 100644 index 0000000..f1b2b2f --- /dev/null +++ b/vs2010mfc/config/SigmaDeltaBGS.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<opencv_storage> +<ampFactor>1</ampFactor> +<minVar>15</minVar> +<maxVar>255</maxVar> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/StaticFrameDifferenceBGS.xml b/vs2010mfc/config/StaticFrameDifferenceBGS.xml new file mode 100644 index 0000000..943a6c9 --- /dev/null +++ b/vs2010mfc/config/StaticFrameDifferenceBGS.xml @@ -0,0 +1,6 @@ +<?xml version="1.0"?> +<opencv_storage> +<enableThreshold>1</enableThreshold> +<threshold>15</threshold> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/T2FGMM_UM.xml b/vs2010mfc/config/T2FGMM_UM.xml new file mode 100644 index 0000000..d2f1054 --- /dev/null +++ b/vs2010mfc/config/T2FGMM_UM.xml @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<opencv_storage> +<threshold>9.</threshold> +<alpha>1.0000000000000000e-002</alpha> +<km>1.5000000000000000e+000</km> +<kv>6.0000002384185791e-001</kv> +<gaussians>3</gaussians> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/T2FGMM_UV.xml b/vs2010mfc/config/T2FGMM_UV.xml new file mode 100644 index 0000000..d2f1054 --- /dev/null +++ b/vs2010mfc/config/T2FGMM_UV.xml @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<opencv_storage> +<threshold>9.</threshold> +<alpha>1.0000000000000000e-002</alpha> +<km>1.5000000000000000e+000</km> +<kv>6.0000002384185791e-001</kv> +<gaussians>3</gaussians> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/T2FMRF_UM.xml b/vs2010mfc/config/T2FMRF_UM.xml new file mode 100644 index 0000000..9a65c57 --- /dev/null +++ b/vs2010mfc/config/T2FMRF_UM.xml @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<opencv_storage> +<threshold>9.</threshold> +<alpha>1.0000000000000000e-002</alpha> +<km>2.</km> +<kv>8.9999997615814209e-001</kv> +<gaussians>3</gaussians> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/T2FMRF_UV.xml b/vs2010mfc/config/T2FMRF_UV.xml new file mode 100644 index 0000000..9a65c57 --- /dev/null +++ b/vs2010mfc/config/T2FMRF_UV.xml @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<opencv_storage> +<threshold>9.</threshold> +<alpha>1.0000000000000000e-002</alpha> +<km>2.</km> +<kv>8.9999997615814209e-001</kv> +<gaussians>3</gaussians> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/VuMeter.xml b/vs2010mfc/config/VuMeter.xml new file mode 100644 index 0000000..d28fda7 --- /dev/null +++ b/vs2010mfc/config/VuMeter.xml @@ -0,0 +1,8 @@ +<?xml version="1.0"?> +<opencv_storage> +<enableFilter>1</enableFilter> +<binSize>8</binSize> +<alpha>9.9500000000000000e-001</alpha> +<threshold>2.9999999999999999e-002</threshold> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/WeightedMovingMeanBGS.xml b/vs2010mfc/config/WeightedMovingMeanBGS.xml new file mode 100644 index 0000000..008ad74 --- /dev/null +++ b/vs2010mfc/config/WeightedMovingMeanBGS.xml @@ -0,0 +1,8 @@ +<?xml version="1.0"?> +<opencv_storage> +<enableWeight>1</enableWeight> +<enableThreshold>1</enableThreshold> +<threshold>15</threshold> +<showOutput>0</showOutput> +<showBackground>0</showBackground> +</opencv_storage> diff --git a/vs2010mfc/config/WeightedMovingVarianceBGS.xml b/vs2010mfc/config/WeightedMovingVarianceBGS.xml new file mode 100644 index 0000000..d9de1d4 --- /dev/null +++ b/vs2010mfc/config/WeightedMovingVarianceBGS.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<opencv_storage> +<enableWeight>1</enableWeight> +<enableThreshold>1</enableThreshold> +<threshold>15</threshold> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/res/bgslibrary_vs2010_mfc.ico b/vs2010mfc/res/bgslibrary_vs2010_mfc.ico new file mode 100644 index 0000000000000000000000000000000000000000..d56fbcdfdf6eac0f4727c34770c26689271d96af GIT binary patch literal 67777 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 literal 0 HcmV?d00001 diff --git a/vs2010mfc/res/bgslibrary_vs2010_mfc.rc2 b/vs2010mfc/res/bgslibrary_vs2010_mfc.rc2 new file mode 100644 index 0000000000000000000000000000000000000000..e327fa85913f2210efffc3a01eb0194aadda29e2 GIT binary patch literal 826 zcmezWPoF`bftP`c0Yob>Br&8j6f@*7WHKZ%6fq<+6fsmX#50sJ6f+nx7%&(z7%;>$ z<T9i&Bs1tS1Ti=>7%?a?=rSlU6fvYS6f@*Alrj`CB!k%s489DR49N^d4EbQ0G=>re z1%@z&Oon2HQieo^90mmjX9jHsZ3YE~6o!1Lo;-$pu)0)+6oyPN3q*rVPi81#$YH32 zyA|YS5LRZ$WJqI3VMt|2V^CmlWC&mgW(Z*jWpH8eWbkK*XYge3V+dpLXYgilWpDxO zR%S?LC<42yh(Up&gdqd$CIyBxhD?SWhExUxC?DM|i3~|l`6Px)2IBn(ab+q)9@tMH zSAxQt7?*-{f-p$^;KVT3fkHloA%#JKA(tVMArBhEp!iZ?fW;+<#-36#z%i1_pa+H^ OGeLN8`WWOYkm~?zwr!vQ literal 0 HcmV?d00001 diff --git a/vs2010mfc/resource.h b/vs2010mfc/resource.h new file mode 100644 index 0000000000000000000000000000000000000000..606dd8c2eebd167158db80652c82fc50419d8ec6 GIT binary patch literal 4240 zcmezWPoF`bp_-wZ!H>b8A)dj7!IdF^!Ii-e%<^M!X7FTiWe8@dWvFG~W#D1}sa9a{ zWyoYmW+-CFXDDXKXGmixVNhTQW5{GEW+-JyWXNGqU~p#8X3%C(U`S_3WyoVlWhi1u zWGG=sWk_LAV8~?1V@PJmVJKxtVMt|AU`S)gWXNGiWza*iA(WvQsyd0Gl0ktXi6Nb# zm?4KDlOYLgRuMxbLp(znLotI9g8_pfg8@T4LoP!aLo$ONLlHwV+$4~jmBIFaYyr7M zfx(l(g~690p23m9iNT*ClpzF6M=&T52@M!37!07c;xgZb0`oz>F#!7jo6CbKG}#cR z$q+XOFa!`84#?pJa<dUmlY<!I8GIQW89W*M7~B|w7#taV8C;39#gM^>!2+kr!3-e` zjtoHzAw-&n?q*Ot;)+9%+5TjOh5|T6g3=`}vz-~@8JrpX8GONMFP_1P!JQ$P!H2<< z0c0z(D>2!iur^@89oitXeHi>1+{q3TW1Qg)G8+_&0pNTS&kzRAO|A_7MA!v!w;5iu z5vd~{oLV6EV1@y@2*hl2qRj@S#$X0-B3uoNOWbJ?6eghz!3?ep@eJV%t_)5L&fpY| z?nZ2Uh`TNEy4#h(g~5{{1kH3v_<+i5TqPICY(ob8;T_Bn01jtVmlJC?@!{>q5DHG~ zt_(p0!yMvn{NWwK;K~pI4in@QL)aFG+4#ddn8A@D3>=#Xv$4e;x){i8P;G=S&m+tx zB?Us#pb>#Q@66!A;L704;LTu6FpQDi4skdBJdbd<6N5JiB?~cTBSINe4iaxV#B37= zeBtfM;LG675D(6sfh2?q#B5W%W+U<?sLY1cLZF=E!hkDBLP8y4HnI7V9JBG~OH_A* zYB*wC4NHUg^ChA@0lAx0v+?IkM15&ULQF#3ZOnkX-2*DW5oX6TxG{J#_<-|&2ty>e zH4KS2Y$PZy37L%uZ%}FN!{EpeNtF8`X5+8t5qX}RFu|YaL2Wcp&Ev@6#{dfzP`OK} z1c$gAzuBPD8&p=sGlVdJ@+k4GK?4S32K;#*k@6f#Y8OJ>jX%$$nr%c>Jc7~<#B4%& z9@drx^-YLx(GoHnR(6BjK`Mrr4Jl7R<t(KC=f{xBPyz1sfqHOh42cY-3^`za8Myyf z%8<%X4DQ+GGZZl>fO~-D3<?bS3`q=G45<vs3?&T3;Ib8B9>`>6hD?SuXirUn!I2>V z+!782w|zi8Q&6ijjKQD5n*o%c5IXYk=m}zQWpHG0Ven`0WAI^!1lI$R;C6^VgAYS6 z*ahf)EKt~k?2c#fgSRn2<^+TLia`v{;F2MX!I8m-Arwn5#*o370ekNao5_%J2h<h- z^|(RpX<X(iFc>o!F_<%$<0#2+neN9B!Vts&@-KeVAu)};bjN0PFaszgL2-fKTu_Pw TnGGv{LE`}_;JAjwAu1mLW#Q*d literal 0 HcmV?d00001 diff --git a/vs2010mfc/stdafx.cpp b/vs2010mfc/stdafx.cpp new file mode 100644 index 0000000..9e260e7 --- /dev/null +++ b/vs2010mfc/stdafx.cpp @@ -0,0 +1,8 @@ + +// stdafx.cpp : source file that includes just the standard includes +// bgslibrary_vs2010_mfc.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + + diff --git a/vs2010mfc/stdafx.h b/vs2010mfc/stdafx.h new file mode 100644 index 0000000..c07f951 --- /dev/null +++ b/vs2010mfc/stdafx.h @@ -0,0 +1,102 @@ + +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, +// but are changed infrequently + +#pragma once + +#ifndef _SECURE_ATL +#define _SECURE_ATL 1 +#endif + +#ifndef VC_EXTRALEAN +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers +#endif + +#include "targetver.h" + +#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit + +// turns off MFC's hiding of some common and often safely ignored warning messages +#define _AFX_ALL_WARNINGS + +#include <afxwin.h> // MFC core and standard components +#include <afxext.h> // MFC extensions + + +#include <afxdisp.h> // MFC Automation classes + + + +#ifndef _AFX_NO_OLE_SUPPORT +#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls +#endif +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include <afxcmn.h> // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + +#include <afxcontrolbars.h> // MFC support for ribbons and control bars + +#ifdef _UNICODE +#if defined _M_IX86 +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") +#elif defined _M_X64 +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") +#else +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") +#endif +#endif + +#include <boost/lexical_cast.hpp> +#include <boost/chrono.hpp> +typedef boost::chrono::high_resolution_clock Clock; +typedef boost::chrono::milliseconds milliseconds; +typedef boost::chrono::microseconds microseconds; + +#include <iostream> + +#include <cv.h> +#include <highgui.h> + +// BGSLibrary algorithms + +#include "../package_bgs/FrameDifferenceBGS.h" +#include "../package_bgs/StaticFrameDifferenceBGS.h" +#include "../package_bgs/WeightedMovingMeanBGS.h" +#include "../package_bgs/WeightedMovingVarianceBGS.h" +#include "../package_bgs/MixtureOfGaussianV1BGS.h" +#include "../package_bgs/MixtureOfGaussianV2BGS.h" +#include "../package_bgs/AdaptiveBackgroundLearning.h" +#include "../package_bgs/AdaptiveSelectiveBackgroundLearning.h" +#include "../package_bgs/GMG.h" + +#include "../package_bgs/dp/DPAdaptiveMedianBGS.h" +#include "../package_bgs/dp/DPGrimsonGMMBGS.h" +#include "../package_bgs/dp/DPZivkovicAGMMBGS.h" +#include "../package_bgs/dp/DPMeanBGS.h" +#include "../package_bgs/dp/DPWrenGABGS.h" +#include "../package_bgs/dp/DPPratiMediodBGS.h" +#include "../package_bgs/dp/DPEigenbackgroundBGS.h" +#include "../package_bgs/dp/DPTextureBGS.h" + +#include "../package_bgs/tb/T2FGMM_UM.h" +#include "../package_bgs/tb/T2FGMM_UV.h" +#include "../package_bgs/tb/T2FMRF_UM.h" +#include "../package_bgs/tb/T2FMRF_UV.h" +#include "../package_bgs/tb/FuzzySugenoIntegral.h" +#include "../package_bgs/tb/FuzzyChoquetIntegral.h" + +#include "../package_bgs/lb/LBSimpleGaussian.h" +#include "../package_bgs/lb/LBFuzzyGaussian.h" +#include "../package_bgs/lb/LBMixtureOfGaussians.h" +#include "../package_bgs/lb/LBAdaptiveSOM.h" +#include "../package_bgs/lb/LBFuzzyAdaptiveSOM.h" + +#include "../package_bgs/jmo/MultiLayerBGS.h" +// The PBAS algorithm was removed from BGSLibrary because it is based on patented algorithm ViBE +// #include "../package_bgs/pt/PixelBasedAdaptiveSegmenter.h" +#include "../package_bgs/av/VuMeter.h" +#include "../package_bgs/ae/KDE.h" +#include "../package_bgs/db/IndependentMultimodalBGS.h" +#include "../package_bgs/sjn/SJN_MultiCueBGS.h" +#include "../package_bgs/bl/SigmaDeltaBGS.h" diff --git a/vs2010mfc/targetver.h b/vs2010mfc/targetver.h new file mode 100644 index 0000000..87c0086 --- /dev/null +++ b/vs2010mfc/targetver.h @@ -0,0 +1,8 @@ +#pragma once + +// Including SDKDDKVer.h defines the highest available Windows platform. + +// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and +// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. + +#include <SDKDDKVer.h> -- GitLab