diff --git a/vs2010mfc/App.cpp b/vs2010mfc/App.cpp deleted file mode 100644 index a6f45c78da..0000000000 --- a/vs2010mfc/App.cpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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 deleted file mode 100644 index 5ef9764a33..0000000000 --- a/vs2010mfc/App.h +++ /dev/null @@ -1,32 +0,0 @@ - -// 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 deleted file mode 100644 index cb48604d83..0000000000 --- a/vs2010mfc/Dlg.cpp +++ /dev/null @@ -1,710 +0,0 @@ - -// 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(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(m_hIcon); -} - -void CDlg::addBgsList() -{ - // 36 algorithms (37 with PBAS) - 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"); - m_bgslist.AddString(L"SuBSENSEBGS"); - m_bgslist.AddString(L"LOBSTERBGS"); -} - -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 (methodName == "SuBSENSEBGS") - bgs = new SuBSENSEBGS; - if (methodName == "LOBSTERBGS") - bgs = new LOBSTERBGS; - - 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(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(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(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(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(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 deleted file mode 100644 index 479d7271be..0000000000 --- a/vs2010mfc/Dlg.h +++ /dev/null @@ -1,92 +0,0 @@ - -// 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 deleted file mode 100644 index 6c7fde03e0..0000000000 --- a/vs2010mfc/ReadMe.txt +++ /dev/null @@ -1,100 +0,0 @@ -================================================================================ - 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.sln b/vs2010mfc/bgslibrary_vs2010_mfc.sln deleted file mode 100644 index f082581f1f..0000000000 --- a/vs2010mfc/bgslibrary_vs2010_mfc.sln +++ /dev/null @@ -1,20 +0,0 @@ - -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.filters b/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj.filters deleted file mode 100644 index 1f3c0cc1f6..0000000000 --- a/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj.filters +++ /dev/null @@ -1,581 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - {be6b45b0-e96c-4347-a65e-a72506b4195f} - - - {c4756493-26d9-46f4-93d6-024b4d1ca61a} - - - {a3dff805-136a-4fc5-a8e9-a7eadebcd6f2} - - - {d9c40f02-d18f-46bb-a956-522e83a8a2e7} - - - {77576fcd-de50-4205-8072-cb25a1aab145} - - - {50f16e47-ef1d-46b0-a0cb-f7c07599cd21} - - - {704bbcb4-9bbe-4fe1-8a80-78ee8d7f49c5} - - - {d365878b-8639-4bfd-8008-adb158c9cd8b} - - - {f7961eef-2755-4712-a9b7-1b840b7936b1} - - - {e23418b4-562b-41ae-bd15-e9ad45ece1d1} - - - {2a0f8129-33e2-4829-a112-edba4c8f5ef6} - - - - - - Resource Files - - - Resource Files - - - Header Files\package_bgs\pl - - - Header Files\package_bgs\pl - - - Header Files\package_bgs\pl - - - Header Files\package_bgs\pl - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files\package_bgs - - - Header Files\package_bgs - - - Header Files\package_bgs - - - Header Files\package_bgs - - - Header Files\package_bgs - - - Header Files\package_bgs - - - Header Files\package_bgs - - - Header Files\package_bgs - - - Header Files\package_bgs - - - Header Files\package_bgs\av - - - Header Files\package_bgs\av - - - Header Files\package_bgs\av - - - Header Files\package_bgs\jmo - - - Header Files\package_bgs\jmo - - - Header Files\package_bgs\jmo - - - Header Files\package_bgs\jmo - - - Header Files\package_bgs\jmo - - - Header Files\package_bgs\jmo - - - Header Files\package_bgs\jmo - - - Header Files\package_bgs\jmo - - - Header Files\package_bgs\jmo - - - Header Files\package_bgs\jmo - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\ae - - - Header Files\package_bgs\ae - - - Header Files\package_bgs\ae - - - Header Files\package_bgs\ae - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\sjn - - - Header Files\package_bgs\db - - - Header Files\package_bgs\db - - - Header Files\package_bgs - - - Header Files\package_bgs\bl - - - Header Files\package_bgs\bl - - - Header Files\package_bgs\bl - - - Header Files\package_bgs\pl - - - Header Files\package_bgs\pl - - - Header Files\package_bgs\pl - - - Header Files\package_bgs\pl - - - Header Files\package_bgs\pl - - - Header Files\package_bgs\pl - - - Header Files\package_bgs\pl - - - Header Files\package_bgs\pl - - - - - Source Files - - - Source Files - - - Source Files - - - Header Files\package_bgs - - - Header Files\package_bgs - - - Header Files\package_bgs - - - Header Files\package_bgs - - - Header Files\package_bgs - - - Header Files\package_bgs - - - Header Files\package_bgs - - - Header Files\package_bgs - - - Header Files\package_bgs\av - - - Header Files\package_bgs\av - - - Header Files\package_bgs\av - - - Header Files\package_bgs\jmo - - - Header Files\package_bgs\jmo - - - Header Files\package_bgs\jmo - - - Header Files\package_bgs\jmo - - - Header Files\package_bgs\jmo - - - Header Files\package_bgs\jmo - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\lb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\tb - - - Header Files\package_bgs\ae - - - Header Files\package_bgs\ae - - - Header Files\package_bgs\ae - - - Header Files\package_bgs\ae - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\dp - - - Header Files\package_bgs\sjn - - - Header Files\package_bgs\db - - - Header Files\package_bgs\db - - - Header Files\package_bgs - - - Header Files\package_bgs\bl - - - Header Files\package_bgs\bl - - - Header Files\package_bgs\pl - - - Header Files\package_bgs\pl - - - Header Files\package_bgs\pl - - - Header Files\package_bgs\pl - - - Header Files\package_bgs\pl - - - Header Files\package_bgs\pl - - - - - Resource Files - - - \ No newline at end of file diff --git a/vs2010mfc/res/bgslibrary_vs2010_mfc.ico b/vs2010mfc/res/bgslibrary_vs2010_mfc.ico deleted file mode 100644 index d56fbcdfdf..0000000000 Binary files a/vs2010mfc/res/bgslibrary_vs2010_mfc.ico and /dev/null differ diff --git a/vs2010mfc/resource.h b/vs2010mfc/resource.h deleted file mode 100644 index 606dd8c2ee..0000000000 Binary files a/vs2010mfc/resource.h and /dev/null differ diff --git a/vs2010mfc/stdafx.cpp b/vs2010mfc/stdafx.cpp deleted file mode 100644 index 9e260e7224..0000000000 --- a/vs2010mfc/stdafx.cpp +++ /dev/null @@ -1,8 +0,0 @@ - -// 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 deleted file mode 100644 index 2d94db4d7b..0000000000 --- a/vs2010mfc/stdafx.h +++ /dev/null @@ -1,105 +0,0 @@ - -// 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 // MFC core and standard components -#include // MFC extensions - - -#include // MFC Automation classes - - - -#ifndef _AFX_NO_OLE_SUPPORT -#include // MFC support for Internet Explorer 4 Common Controls -#endif -#ifndef _AFX_NO_AFXCMN_SUPPORT -#include // MFC support for Windows Common Controls -#endif // _AFX_NO_AFXCMN_SUPPORT - -#include // 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 -#include -typedef boost::chrono::high_resolution_clock Clock; -typedef boost::chrono::milliseconds milliseconds; -typedef boost::chrono::microseconds microseconds; - -#include - -#include -#include - -// 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" - -#include "../package_bgs/pl/SuBSENSE.h" -#include "../package_bgs/pl/LOBSTER.h" diff --git a/vs2010mfc/targetver.h b/vs2010mfc/targetver.h deleted file mode 100644 index 87c0086de7..0000000000 --- a/vs2010mfc/targetver.h +++ /dev/null @@ -1,8 +0,0 @@ -#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