亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mainfrm.cpp

?? 基于隱馬爾可夫模型的人臉識別源代碼,是作模式識別的最好學(xué)習(xí)代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*M///////////////////////////////////////////////////////////////////////////////////////
//
//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
//  By downloading, copying, installing or using the software you agree to this license.
//  If you do not agree to this license, do not download, install,
//  copy or use the software.
//
//
//                        Intel License Agreement
//                For Open Source Computer Vision Library
//
// Copyright (C) 2000, Intel Corporation, all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
//   * Redistribution's of source code must retain the above copyright notice,
//     this list of conditions and the following disclaimer.
//
//   * Redistribution's in binary form must reproduce the above copyright notice,
//     this list of conditions and the following disclaimer in the documentation
//     and/or other materials provided with the distribution.
//
//   * The name of Intel Corporation may not be used to endorse or promote products
//     derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Intel Corporation or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "HMMDemo.h"

#include "MainFrm.h"
#include "HMMDemoDoc.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#include "highgui.h"
extern CHMMDemoApp theApp;
extern CStringArray maskFileNameArray;
/////////////////////////////////////////////////////////////////////////////
// CMainFrame

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
    //{{AFX_MSG_MAP(CMainFrame)
    ON_WM_CREATE()
    ON_UPDATE_COMMAND_UI(ID_CAPTURE, OnUpdateCapture)
    ON_COMMAND(ID_CAPTURE, OnCapture)
    ON_UPDATE_COMMAND_UI(ID_CAPOPTIONS, OnUpdateCapOptions)
    ON_COMMAND(ID_CAPOPTIONS, OnCapOptions)
    ON_UPDATE_COMMAND_UI(ID_CAPFORMAT, OnUpdateCapFormat)
    ON_COMMAND(ID_CAPFORMAT, OnCapFormat)
    ON_COMMAND(ID_ADD_OBJ, OnAddObj)
    ON_UPDATE_COMMAND_UI(ID_ADD_OBJ, OnUpdateAddObj)
    ON_COMMAND(ID_REMOVE_OBJ, OnRemoveObj)
    ON_UPDATE_COMMAND_UI(ID_REMOVE_OBJ, OnUpdateRemoveObj)
	ON_COMMAND(ID_ZOOMIN, OnZoomIn)
    ON_COMMAND(ID_ZOOMOUT, OnZoomOut)
	ON_COMMAND(ID_SETINFO, OnChangeBaseParams)
	ON_COMMAND(ID_TRAIN, OnTrain)
    ON_UPDATE_COMMAND_UI(ID_TRAIN, OnUpdateTrain)
	ON_COMMAND(ID_RECOG, OnRecognize)
	ON_UPDATE_COMMAND_UI(ID_RECOG, OnUpdateRecog)
	ON_COMMAND(ID_SELECTALL, OnSelectAll)
	ON_COMMAND(ID_DEL_HMM, OnDelHmm)
	ON_COMMAND(ID_ADD_TEST, OnAddTest)
	ON_UPDATE_COMMAND_UI(ID_ADD_TEST, OnUpdateAddTest)
	ON_COMMAND(ID_TEST_FOLDER, OnTestFolder)
	ON_COMMAND(ID_RECOBASE, OnRecobase)
	ON_UPDATE_COMMAND_UI(ID_RECOBASE, OnUpdateRecobase)
	ON_COMMAND(ID_SETTINGS, OnSettings)
	ON_COMMAND(ID_Single_Directory_DO, OnSingleDirectoryDO)
	ON_COMMAND(ID_All_Directorys_DO, OnAllDirectorysDO)
	ON_COMMAND(ID_CAPTURE_BMP, OnCaptureBmp)
	ON_COMMAND(ID_CAPTURE_MANY_BMPS, OnCaptureManyBmps)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

static UINT indicators[] =
{
	ID_SEPARATOR,           // status line indicator
	ID_INDICATOR_CAPS,
	ID_INDICATOR_NUM,
	ID_INDICATOR_SCRL,
};

/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction

CMainFrame::CMainFrame()
{
    m_busy = FALSE;
}

CMainFrame::~CMainFrame()
{
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
        return -1;

    if( !m_wndToolBar.CreateEx(this) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
        return -1;

    if( !m_wndReBar.Create(this) ||
        !m_wndReBar.AddBar(&m_wndToolBar))
        return -1;

    if (!m_wndStatusBar.Create(this) ||
        !m_wndStatusBar.SetIndicators(indicators,
        sizeof(indicators)/sizeof(UINT)))
        return -1;
    
    m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
        CBRS_TOOLTIPS | CBRS_FLYBY);

    return 0;
}


BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
                                CCreateContext* pContext)
{
    m_wndSplitter.CreateStatic(this,1,2);
    
    m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CImageBaseView),CSize(300,100),pContext);
    m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CHMMDemoView),CSize(300,100),pContext);
//    m_wndSplitter.CreateView(0,2,RUNTIME_CLASS(CTestImageBaseView),CSize(300,100),pContext);
   
    return TRUE;
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CFrameWnd::PreCreateWindow(cs) )
		return FALSE;

	return TRUE;
}

CImageBaseView* CMainFrame::GetImageBaseView()
{
    return (CImageBaseView*)m_wndSplitter.GetPane(0,0);
}

CHMMDemoView* CMainFrame::GetCameraView()
{
    return (CHMMDemoView*)m_wndSplitter.GetPane(0,1);
}


void CMainFrame::OnUpdateCapture(CCmdUI* pCmdUI) 
{
    CHMMDemoView* view = GetCameraView();
    bool enable = false;
    bool press = false;

    if( view )
    {
        enable = view->Camera().IsInitialized();
        press = view->Camera().IsRunning();
    }

    pCmdUI->Enable( enable );
    pCmdUI->SetCheck( press );
}

void CMainFrame::OnCapture() 
{
    CHMMDemoView* view = GetCameraView();

    if( view && view->Camera().IsInitialized())
    {
        if( view->Camera().IsRunning())
        {
            view->Camera().Stop();
        }
        else
        {
            view->SetImageList(0);
            view->Camera().Start();
        }
    }    
}

void CMainFrame::OnUpdateCapOptions(CCmdUI* pCmdUI) 
{
    CHMMDemoView* view = GetCameraView();
    pCmdUI->Enable( view != 0 );
}

void CMainFrame::OnCapOptions() 
{
    CHMMDemoView* view = GetCameraView();

    if( view )
    {
        view->Camera().VideoSourceDlg();
        view->InvalidateRect(0);
    }
}

void CMainFrame::OnUpdateCapFormat(CCmdUI* pCmdUI) 
{
    CHMMDemoView* view = GetCameraView();
    pCmdUI->Enable( view != 0 );
}

void CMainFrame::OnCapFormat() 
{
	CHMMDemoView* view = GetCameraView();

    if( view )
    {
        view->Camera().VideoFormatDlg();
        view->InvalidateRect(0);
    }
}


void CMainFrame::OnUpdateAddObj(CCmdUI* pCmdUI) 
{
    CHMMDemoView* view = GetCameraView();
    bool enable = false;

    if( view )
    {
        enable = !view->GetSelection().IsRectEmpty();
    }
    pCmdUI->Enable( enable );
}


void CMainFrame::OnAddObj() 
{
    CHMMDemoView* view = GetCameraView();
    CHMMDemoDoc* doc = GetHMMDoc();

    if( view && doc )
    {
        CCamera& camera = view->Camera();
        camera.Stop();
        doc->AddObj( camera.GetFrame(), view->GetSelection(), view->GetImageList() );
        camera.Start();
    }
}

//try to write new file to directory 
CString GetFreeFilename( CString folder, CString base_name )
{   
    int i = 0;
    CString full_name;
    
    for(;;)
    {
        FILE* f = 0;
        for( ; i < 10000; i++ )
        {     
            
            //GetPersonFullImageName( m_folder, m_folder.GetLength(), filename, path );
            full_name.Format( "%s\\%s%04d.bmp", folder, base_name, i );
            f = fopen( full_name, "rb" );
            if( !f ) break;
            fclose(f);
        }
        if( i == 10000 )
        {
            ASSERT(0); //so many images already exist
            return CString("");
        }
        
        // try to open for writing. If success, output name
        f = fopen( full_name, "wb" );
        if( !f ) continue;
        
        fclose(f);
        remove( full_name );
        break;
    }
    
    return full_name;
}


void CMainFrame::OnAddTest() 
{       
    CHMMDemoView* camera_view = GetCameraView();
    CImageBaseView* view = GetImageBaseView();
    CHMMDemoDoc* doc = GetHMMDoc();

    if( view && doc )
    {
        CRect m_sel = camera_view->GetSelection();
        CCamera& camera = camera_view->Camera();

        camera.Stop();
        
        //get selected person name
        CPerson* person = doc->GetFaceBase().GetPerson( view->GetPersonIndex() );
        CString name = person->GetName();

        //add image which is in view
        CString filename = GetFreeFilename( camera_view->GetTestPath(), name );
        CImage new_img;
        new_img.CopyOf( camera.GetFrame() );
        IplImage* iplimage = new_img.GetImage();

        if( !iplimage )
        {
            MessageBox("No image was selected!");
            return;
        }
        
        cvSetImageROI( iplimage, RectToCvRect( m_sel ));
        CImage tofile;
        tofile.CopyOf( iplimage );
        tofile.Save( filename );
        
        //add other images
        CStringList* imageList = camera_view->GetImageList();

        if ( imageList && (imageList->GetCount() > 1) )
        {
            //add batch
            POSITION pos = imageList->GetHeadPosition();
            imageList->GetNext( pos );
                        
            while (pos)
            {
                CImage img;
                img.Load( imageList->GetNext( pos ), 1 );
                
                
                img.Save( GetFreeFilename( camera_view->GetTestPath(), name ) );
            }
        }
        MessageBox("Images were added to test base");

        camera.Start();

    }
    return;

}


void CMainFrame::OnUpdateRemoveObj(CCmdUI* pCmdUI) 
{
    CImageBaseView* view = GetImageBaseView();
    bool enable = false;

    if( view )
    {
        enable = view->GetActive() >= 0;
    }
    pCmdUI->Enable( enable );
}

void CMainFrame::OnRemoveObj() 
{
    CImageBaseView* view = GetImageBaseView();
    CHMMDemoDoc* doc = GetHMMDoc();

    if( doc && view )
    {
        int active = view->GetActive();
        int person_index = view->GetPersonIndex();

        if( active >= 0 )
        {
            if( doc->RemoveObj( person_index, active ))
            {
                view->ResetActive();
                view->RefreshView();
            }
        }
    }
}


void CMainFrame::OnZoomIn() 
{
    CImageBaseView* view = GetImageBaseView();
    view->Zoom();
}


void CMainFrame::OnZoomOut() 
{
    CImageBaseView* view = GetImageBaseView();
    view->Zoom( false );
}


void CMainFrame::OnChangeBaseParams() 
{
    CHMMDemoDoc* doc = GetHMMDoc();

    if( doc )
    {
        doc->ChangeBaseParams();
    }
}

void CMainFrame::OnTrain() 
{
    CWaitCursor wait;
	//if 1 person selected - train its HMM
    //if all base in view - train all untrained persons
    CHMMDemoDoc* doc = GetHMMDoc();
    CImageBaseView* base_view = GetImageBaseView();
                               
    if( doc && base_view )
    {
        //int view_mode = base_view->GetMode();
        CFaceBase& base = doc->GetFaceBase();
        
        if( base_view->GetPersonIndex() >= 0 )
        {
            base.TrainPerson( base_view->GetPersonIndex(), true );
        }
        else
            base.TrainAll( TRAIN_UNTRAINED ); 
    } 
}

void CMainFrame::OnRecognize() 
{         
		CWaitCursor wait;

		CHMMDemoView* view = GetCameraView();
		CHMMDemoDoc* doc = GetHMMDoc();
		CImageBaseView* baseview = GetImageBaseView();
		
		if( doc && view && baseview )
		{
			CFaceBase& base = doc->GetFaceBase();
			CCamera& camera = view->Camera();
			camera.Stop();

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
777亚洲妇女| 国产99久久久精品| 欧美性videosxxxxx| 亚洲精品国产a久久久久久 | 欧美一区二区三区免费在线看| 亚洲一区二区在线播放相泽| 欧美日韩专区在线| 蜜桃视频一区二区三区| 精品对白一区国产伦| 国产又黄又大久久| √…a在线天堂一区| 欧美羞羞免费网站| 美腿丝袜亚洲一区| 国产欧美精品一区二区色综合| 91小视频免费观看| 免费成人小视频| 国产精品不卡一区二区三区| 在线免费观看日本欧美| 免费成人av在线播放| 久久精品人人爽人人爽| 欧美中文字幕不卡| 国产专区综合网| 一区二区三区四区乱视频| 在线成人免费视频| 成人福利视频网站| 香蕉av福利精品导航| 欧美激情一区二区三区全黄| 欧美这里有精品| 国产精品影视天天线| 艳妇臀荡乳欲伦亚洲一区| 精品国产一区二区三区av性色 | 日本韩国精品在线| 日本成人在线电影网| 中文字幕 久热精品 视频在线| 日韩精品一区二区三区四区视频| 久久国产精品色| 国产精品欧美一区二区三区| 这里只有精品99re| 99re热视频精品| 免费高清在线一区| 亚洲精品国产无套在线观| 欧美精品一区在线观看| 欧美日韩亚洲综合在线| 国产大片一区二区| 日本不卡高清视频| 亚洲午夜久久久久久久久电影网| 亚洲精品一区二区三区福利| 在线观看日韩毛片| 成人黄色一级视频| 美国精品在线观看| 亚洲精品免费看| 欧美极品少妇xxxxⅹ高跟鞋| 欧美一级国产精品| 欧美熟乱第一页| 91同城在线观看| 成人免费毛片aaaaa**| 精品一区二区免费| 日本欧美大码aⅴ在线播放| 一区二区三区四区精品在线视频 | 99国产精品国产精品毛片| 久久99热99| 无码av免费一区二区三区试看| 亚洲色图在线视频| 国产精品国产馆在线真实露脸| 久久久国际精品| 精品99999| 欧美一级视频精品观看| 欧美亚洲禁片免费| 欧美影院午夜播放| 欧美亚洲综合久久| 色www精品视频在线观看| 99久久久久久| 99久久精品一区| 99精品在线免费| 一本大道久久a久久精二百| 成人激情校园春色| 99久久精品国产麻豆演员表| 成人h版在线观看| 9i看片成人免费高清| 粉嫩久久99精品久久久久久夜| 国产成人av电影免费在线观看| 国产九色sp调教91| 国产高清在线精品| 国产91精品久久久久久久网曝门| 国产成人综合亚洲网站| jlzzjlzz亚洲女人18| 91影视在线播放| 欧美性大战久久| 91精品欧美综合在线观看最新| 91精品国产麻豆| 精品国产91久久久久久久妲己| 精品999在线播放| 中文字幕欧美日本乱码一线二线| 国产精品毛片a∨一区二区三区| 国产精品嫩草影院av蜜臀| 亚洲欧美国产高清| 亚洲国产精品人人做人人爽| 日本不卡一二三区黄网| 国产精品自产自拍| 成人免费视频国产在线观看| 在线观看免费成人| 91精品国产欧美日韩| 久久久精品黄色| 亚洲精品伦理在线| 日韩电影免费一区| 国产99久久久精品| 欧美日韩国产综合一区二区三区| 欧美一级精品在线| 国产精品乱人伦| 五月天一区二区三区| 国产一区二区三区免费播放| 色综合久久88色综合天天免费| 欧美一区永久视频免费观看| 久久精品在这里| 亚洲国产综合91精品麻豆| 久久精品噜噜噜成人av农村| 91玉足脚交白嫩脚丫在线播放| 91麻豆精品国产91久久久久久| 国产网站一区二区| 午夜精品免费在线| 成人激情开心网| 欧美一卡2卡3卡4卡| 亚洲丝袜另类动漫二区| 精品一区二区在线观看| 日本精品免费观看高清观看| 精品剧情在线观看| 亚洲综合另类小说| 国产**成人网毛片九色| 欧美男女性生活在线直播观看| 国产欧美日韩精品在线| 日本不卡一区二区三区| 一本到高清视频免费精品| 久久综合一区二区| 亚洲成人av一区| www.成人在线| 精品国产乱码91久久久久久网站| 亚洲激情图片qvod| 成人深夜视频在线观看| 欧美一级欧美三级在线观看 | 久久精品视频免费| 丝袜亚洲另类欧美综合| 91在线小视频| 中文字幕不卡的av| 国产一区二区在线视频| 日韩午夜av电影| 一区二区三区免费看视频| 国产成人精品免费看| 欧美成人女星排名| 青青草国产精品97视觉盛宴| 欧美做爰猛烈大尺度电影无法无天| 国产精品视频在线看| 极品瑜伽女神91| 日韩午夜激情视频| 奇米四色…亚洲| 欧美精品高清视频| 亚洲电影一级片| 在线观看不卡一区| 亚洲一二三区视频在线观看| bt7086福利一区国产| 中文字幕中文乱码欧美一区二区 | 欧美激情一区二区三区全黄| 国内成人精品2018免费看| 日韩午夜激情视频| 蜜桃在线一区二区三区| 欧美一区二区在线观看| 日本成人中文字幕| 欧美一级片在线| 麻豆91在线看| 精品欧美久久久| 韩国成人在线视频| 国产欧美日韩在线| 99在线热播精品免费| 亚洲欧洲国产日本综合| 色中色一区二区| 亚洲一区二区三区国产| 欧美日韩免费高清一区色橹橹| 亚洲成人先锋电影| 欧美一区二区三区四区久久| 看国产成人h片视频| 久久久91精品国产一区二区三区| 国产成人一区二区精品非洲| 亚洲国产精品t66y| 91麻豆福利精品推荐| 亚洲国产成人av| 日韩视频在线一区二区| 国产一区二区三区四区五区入口| 久久久精品综合| av电影在线观看一区| 亚洲永久精品国产| 日韩无一区二区| 成人网男人的天堂| 亚洲国产wwwccc36天堂| 日韩欧美国产wwwww| 国产91在线观看丝袜| 一区二区三区在线免费播放| 欧美一区二区视频在线观看2020| 国产在线观看免费一区| 亚洲精品自拍动漫在线| 在线播放亚洲一区| 国产成人午夜视频|