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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cvcam.cpp

?? 是一個人臉識別特征提取的Vc代碼
?? CPP
?? 第 1 頁 / 共 5 頁
字號:

                    if(ischecked == BST_CHECKED) //we do
                    {
                        EnableWindow(secondcombo,TRUE);
                        
                        //fill the second combo
                        int n = cvcamGetCamerasCount();
                        CameraDescription descr;
                        HWND cbwnd = GetDlgItem(hwndDlg,IDC_COMBO2);

                        SendMessage(cbwnd,CB_RESETCONTENT ,0,0);
                          
            
                        for(int k = 0; k < n; k++)
                        {
                            cvcamGetProperty(k, CVCAM_DESCRIPTION, (void*)&descr);
                            SendMessage(cbwnd,CB_ADDSTRING ,0,
                                        (LPARAM) descr.DeviceDescription);

            
                        }

                        //remove item selected in a first combo
                        int selected = SendDlgItemMessage(hwndDlg, IDC_COMBO1,
                                                          CB_GETCURSEL,0,0);
                        SendMessage(cbwnd,CB_DELETESTRING ,(WPARAM)selected,0);                    
                    
                    }
                    else if(ischecked == BST_UNCHECKED)
                        EnableWindow(secondcombo,FALSE);

                    return FALSE;


                
                
                }//case IDC_CHECK1:

                case IDC_COMBO1:
                {
                    if(HIWORD(wParam)==CBN_SELCHANGE)
                    {
                        //reset the second combo
                        int n = cvcamGetCamerasCount();
                        CameraDescription descr;
                        HWND cbwnd = GetDlgItem(hwndDlg,IDC_COMBO2);

                        SendMessage(cbwnd,CB_RESETCONTENT ,0,0);
                          
            
                        for(int k = 0; k < n; k++)
                        {
                            cvcamGetProperty(k, CVCAM_DESCRIPTION, (void*)&descr);
                            SendMessage(cbwnd,CB_ADDSTRING ,0,
                                        (LPARAM) descr.DeviceDescription);

            
                        }

                        //remove item selected in a first combo
                        int selected = SendDlgItemMessage(hwndDlg, IDC_COMBO1,
                                                          CB_GETCURSEL,0,0);
                        SendMessage(cbwnd,CB_DELETESTRING ,(WPARAM)selected,0); 

                    
                    
                    
                    }//if(HIWORD(wParam)==CBN_SELCHANGE)

                    return FALSE;
                
                
                }//case IDC_COMBO1:
            
            
            
            
            
            
            }
        
        }//case WM_COMMAND:
    
    }//switch (message)

    return FALSE;
}
/////////////////////////////////////////////////////////////////////////////////////////


/*Pops up a camera(s) selection dialog
Return value - number of cameras selected (0,1 or 2);
Argument(out): an array of selected cameras numbers
NULL if none selected. Should be released with free() when not needed.
if NULL passed, not used.
*/
int cvcamSelectCamera(int** out)  
{
    
      
    DWORD result = DialogBox( DLLhinst, MAKEINTRESOURCE(IDD_DIALOGBAR), 0,
                              SelectionDlgProc );

        
    
    if((out) && (HIWORD(result)))
    {
        *out = (int*)malloc(HIWORD(result)*sizeof(int));

        (*out)[0] = (int)HIBYTE(LOWORD(result));

        if(HIWORD(result) == 2)
            (*out)[1] = (int)LOBYTE(LOWORD(result));
    
    }//if((*out) && (HIWORD(result)))

    return HIWORD(result);
    
}
/////////////////////////////////////////////////////////////////////////////////////////
/*Plays a specified avi file into a specified window
if file is NULL, file browser is opened. if window is 0,
it is created. width and height mean output size's 0 means
those of avi file are used. __cdecl (*callback)(IplImage*) would be
called on every frame. NULL means no callback*/
CVCAM_API int cvcamPlayAVI(const char* file, 
                           void* window, 
                           int width, 
                           int height,
                           void* callback)
{
    //Get the file
    char path[256];
    memset(path,0,256);
    if(!file)
    {
        OPENFILENAME fn;
        fn.lStructSize = sizeof(OPENFILENAME);
        fn.hwndOwner = NULL;
        fn.lpstrFilter = NULL;
        fn.lpstrFile = path;
        fn.nMaxFile = 256;
        fn.lpstrFileTitle = NULL;
        fn.lpstrInitialDir = NULL;
        fn.lpstrTitle = NULL;
        fn.Flags = NULL;
        fn.lpstrDefExt = "avi";
        fn.hInstance = DLLhinst;
        fn.lpfnHook = NULL;
        fn.lpstrCustomFilter = NULL;
        fn.lCustData = NULL;


        if(!GetOpenFileName(&fn))
            return -1;
        
    
    }//if(!file)
    else
        strcpy(path,file);

    /* Get the window */
    HWND hWnd = *(HWND*)window;
        
    if(!hWnd)
    {
        hWnd = _cvcamCreateWindow();
    }
    

    SafePointer<IGraphBuilder> pGraph;
    SafePointer<IMediaControl> pMediaControl;
    SafePointer<IMediaEventEx>   pEvent;
    SafePointer<IVideoWindow>  pVideoWindow;
    SafePointer<IPin> pPin;
    SafePointer<IBasicVideo> pBasicVideo;
    SafePointer<IBaseFilter> pSFilter;
    SafePointer<IProxyTransform> pProxyTrans;
    SafePointer<IPin> pSourceOut, pProxyIn, pProxyOut;
    SafePointer<IEnumPins> pEnumPins;
    SafePointer<IBaseFilter> pProxyBase;
    
    //Initialise COM
    cvcamUseCom Iusecom;

    // Create the filter graph manager and query for interfaces.
    CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, 
                        IID_IGraphBuilder, (void **)&pGraph);

    // Build the graph.
    wchar_t wpath[256];
    mbstowcs(wpath, path, strlen(path)+1);

    
    HRESULT hres = pGraph->AddSourceFilter(wpath,L"source",&pSFilter);
    if(FAILED(hres))
        return -1;

    // Create a proxy transform filter 
    if(FAILED(CoCreateInstance(CLSID_ProxyTransform, NULL, CLSCTX_INPROC_SERVER, 
                    IID_IProxyTransform, (void**)&pProxyTrans)))
    {
        return -1;
    }

    //set callback
    pProxyTrans->set_transform((void(__cdecl*)(void*))callback, 0);

    //Get Source output pin
    pSFilter->EnumPins(&pEnumPins);

    unsigned long fetched(0);
    pEnumPins->Next(1,&pSourceOut,&fetched);
    if(!fetched)
        return -1;

    pEnumPins = NULL;
    
    //Put ProxyTrans into graph
    pProxyTrans->QueryInterface(IID_IBaseFilter,(void**)&pProxyBase);
    pGraph->AddFilter(pProxyBase.value(),L"proxy");
    
    //Get ProxyTrans Pins
    pProxyIn = get_pin( pProxyBase.value(), PINDIR_INPUT );
    pProxyOut= get_pin( pProxyBase.value(), PINDIR_OUTPUT );

    hres = pGraph->Connect(pSourceOut.value(),pProxyIn.value());
    if(FAILED(hres))
        return -1;
    hres = pGraph->Render(pProxyOut.value());
    if(FAILED(hres))
        return -1;


    
    //Gain additional interfaces
    pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
    pGraph->QueryInterface(IID_IMediaEventEx, (void **)&pEvent);
    pGraph->QueryInterface(IID_IVideoWindow, (void **)&pVideoWindow);

    if(!pMediaControl.is_valid() ||!pEvent.is_valid() ||!pVideoWindow.is_valid())
        return -1;

    //Set up the window
    hres = pVideoWindow->put_Owner((OAHWND)hWnd);
    long flags;
    hres = pEvent->SetNotifyWindow((OAHWND)hWnd, WM_GRAPHNOTIFY, 0);
    hres = pEvent->SetNotifyFlags(0x00);
    hres = pEvent->CancelDefaultHandling(EC_COMPLETE);
    hres = pVideoWindow->get_WindowStyle(&flags);
    hres = pVideoWindow->put_WindowStyle(flags & (~WS_CAPTION) | WS_CHILD);
    hres = pVideoWindow->put_MessageDrain((OAHWND)hWnd);

    // Get the rectangle dimensions and resize the client window
    hres = pGraph->QueryInterface(IID_IBasicVideo,(void**)&pBasicVideo);
    if(SUCCEEDED(hres))
    {
        long left, top, w, h;
        pBasicVideo->GetSourcePosition(&left, &top,&w,&h);
        pBasicVideo->SetDestinationPosition(0, 0, width?width:w, height?height:h);
        pVideoWindow->SetWindowPosition(0,0,width?width:w,height?height:h);
        const char* name = cvGetWindowName(hWnd);
        cvResizeWindow(name, width?width:w, height?height:h);
   
    }//if(SUCCEEDED(hres))
    
    
    // Run the graph.
    pMediaControl->Run();

    // Wait for completion. 
    long evCode;
    pEvent->WaitForCompletion(INFINITE, &evCode);

    if(pVideoWindow.is_valid() )
    {
        pVideoWindow->put_Visible(OAFALSE);
        pVideoWindow->put_Owner(NULL);
        pVideoWindow->put_MessageDrain(0);
            
    }
    
    
    
    return 0;
} 

/////////////////////////////////////////////////////////////////////////////////////////
cvcamAVIFILE cvcamAVIOpenFile (char* file)
{
    return theAvis.AddSource(file, NULL);
}
/////////////////////////////////////////////////////////////////////////////////////////
int cvcamAVICloseFile (cvcamAVIFILE file)
{
    return theAvis.ReleaseSource(file);
}
/////////////////////////////////////////////////////////////////////////////////////////
int cvcamAVISetWindow (cvcamAVIFILE file, void* window)
{
    return theAvis[file]->SetWindow(*(HWND*)window);
}
/////////////////////////////////////////////////////////////////////////////////////////
int cvcamAVISetCallback (cvcamAVIFILE file, void* callback)
{
    return theAvis[file]->SetCallBack((void (__cdecl *)(void *))callback);
}
/////////////////////////////////////////////////////////////////////////////////////////
int cvcamAVISetSize (cvcamAVIFILE file, int width, int height)
{
    if(width >= 0)
        theAvis[file]->SetWidth(width);
    if(height >= 0)
        theAvis[file]->SetHeight(height);

    return 0;
}
/////////////////////////////////////////////////////////////////////////////////////////
int cvcamAVIRun (cvcamAVIFILE file)
{
    LONGLONG i = 0;
    theAvis[file]->SetPosition(&i);
    return theAvis[file]->Start();
}

int cvcamAVIStop (cvcamAVIFILE file)
{
    return theAvis[file]->Stop();
}
/////////////////////////////////////////////////////////////////////////////////////////
int cvcamAVIPause (cvcamAVIFILE file)
{
    return theAvis[file]->Pause();
}
/////////////////////////////////////////////////////////////////////////////////////////
int cvcamAVIResume (cvcamAVIFILE file)
{
    return theAvis[file]->Resume();
}
/////////////////////////////////////////////////////////////////////////////////////////
int cvcamAVIWaitCompletion (cvcamAVIFILE file)
{

    return theAvis[file]->WaitForCompletion();
}
/////////////////////////////////////////////////////////////////////////////////////////

int cvcamAVIIsRunning (cvcamAVIFILE file)
{
    return theAvis[file]->IsRunning();
}
/////////////////////////////////////////////////////////////////////////////////////////
static int cvcamAVISetProperty(int source, const char* property, void* value)
{
    if (strcmp(property,CVCAM_PROP_CALLBACK) == 0) 
    {
        return cvcamAVISetCallback(source, value);
    }
    if (strcmp(property,CVCAM_PROP_WINDOW) == 0) 
    {
        return cvcamAVISetWindow(source,value);
    }
    if (strcmp(property,CVCAM_RNDWIDTH) == 0) 
    {
        return cvcamAVISetSize(source,(int)value,-1);
        
    }
    if (strcmp(property,CVCAM_RNDHEIGHT) == 0) 
    {
        return cvcamAVISetSize(source,-1,(int)value);
    }
    if (strcmp(property,CVCAM_PROP_TIME_FORMAT) == 0) 
    {
        return theAvis[source]->SetTimeFormat((int)value);
    }
    if (strcmp(property,CVCAM_PROP_POSITION) == 0) 
    {
        return theAvis[source]->SetPosition((LONGLONG*)value);
        
    }

    return -1;

}
/////////////////////////////////////////////////////////////////////////////////////////
static int cvcamAVIGetProperty(int source, const char* property, void* value)
{
    if (strcmp(property,CVCAM_PROP_DURATION) == 0) 
    {
        return theAvis[source]->GetDuration((LONGLONG*)value);
    }
    if (strcmp(property,CVCAM_PROP_POSITION) == 0) 
    {
        return theAvis[source]->GetCurrentPosition((LONGLONG*)value);
        
    }

    return -1;
}
/////////////////////////////////////////////////////////////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品三区| 56国语精品自产拍在线观看| 成人激情动漫在线观看| 一本色道久久综合狠狠躁的推荐| 色婷婷综合中文久久一本| 欧美日韩专区在线| 久久女同互慰一区二区三区| 国产精品久久久久一区二区三区共| 成人在线综合网| caoporen国产精品视频| 欧美日韩日本视频| 中文子幕无线码一区tr| 亚洲午夜精品久久久久久久久| 黄色小说综合网站| 在线精品视频免费观看| 久久人人超碰精品| 蜜臀久久久久久久| 91久久精品网| 亚洲人成在线观看一区二区| 久热成人在线视频| 欧美精品欧美精品系列| 中文字幕在线观看一区二区| 日本亚洲天堂网| 在线观看日产精品| 亚洲一区在线观看免费观看电影高清| 韩国精品主播一区二区在线观看 | 国产91精品一区二区麻豆亚洲| 国产成人免费视频一区| 欧美三级乱人伦电影| 成人欧美一区二区三区白人| 久久精品国产**网站演员| 欧美在线一区二区| 亚洲人快播电影网| 欧美午夜理伦三级在线观看| 日韩久久一区二区| 91婷婷韩国欧美一区二区| 国产精品嫩草影院com| 国产精品资源在线| 国产亚洲精品aa| 国产精品一级二级三级| 国产亚洲欧美激情| 成人少妇影院yyyy| 亚洲视频一二区| 日本精品一区二区三区高清| 亚洲精品成人在线| 91精品国产欧美一区二区成人| 男男视频亚洲欧美| 久久久91精品国产一区二区精品| 国产乱人伦偷精品视频免下载| 精品国产99国产精品| 成人一级黄色片| 亚洲欧美视频在线观看| 日韩欧美色综合| 91尤物视频在线观看| 麻豆国产91在线播放| 国产精品久久久久婷婷二区次| 91成人免费在线视频| 久久99热国产| 一区二区在线观看免费视频播放| 日本黄色一区二区| 国产一区二区久久| 夜夜夜精品看看| 国产精品成人午夜| 精品国产三级电影在线观看| 色美美综合视频| 国产成人免费视频| 日韩精品电影在线观看| 亚洲人一二三区| 国产欧美一区二区精品性色 | 国产精品国产三级国产普通话三级| 欧美午夜不卡视频| 国产成人午夜99999| 亚洲日本电影在线| 亚洲美女在线国产| 国产精品久久久久久久久动漫| 日韩一级片在线播放| 欧美精选午夜久久久乱码6080| 99re视频精品| 91丝袜高跟美女视频| 国产激情偷乱视频一区二区三区| 久久精品国产精品亚洲综合| 日本欧美韩国一区三区| 久久福利资源站| 国产酒店精品激情| 国产精品 欧美精品| 成人美女在线观看| 99国产精品国产精品毛片| 色婷婷av一区二区三区之一色屋| 91在线一区二区三区| 在线观看免费视频综合| 91.xcao| 精品国产成人系列| 亚洲免费观看高清| 午夜精品久久久久久久蜜桃app| 日产国产欧美视频一区精品| 亚洲成在人线在线播放| 无吗不卡中文字幕| 极品美女销魂一区二区三区免费| 紧缚奴在线一区二区三区| 粉嫩13p一区二区三区| 91成人在线精品| 26uuu精品一区二区三区四区在线| 久久免费午夜影院| 亚洲综合色区另类av| 国产一区二区电影| 在线观看不卡视频| 日本一区二区三区电影| 国产精品白丝在线| 青青草伊人久久| 成人听书哪个软件好| 欧美三级中文字幕| 国产精品情趣视频| 国产麻豆一精品一av一免费| 色狠狠一区二区| 《视频一区视频二区| 精品亚洲aⅴ乱码一区二区三区| 欧美在线你懂得| 国产色产综合色产在线视频 | 久久疯狂做爰流白浆xx| 91高清视频免费看| 综合自拍亚洲综合图不卡区| 国产在线国偷精品产拍免费yy| 欧美人xxxx| 97se亚洲国产综合自在线不卡| 久久综合色天天久久综合图片| 免费观看日韩电影| 欧美变态tickling挠脚心| 天堂午夜影视日韩欧美一区二区| 99re6这里只有精品视频在线观看| 精品嫩草影院久久| 国产在线精品一区二区夜色| 欧美人xxxx| 久久综合狠狠综合久久综合88 | 黄色成人免费在线| 日韩欧美国产麻豆| 久久草av在线| 2023国产精品| 成人av网址在线| 天天色综合成人网| 精品国产91亚洲一区二区三区婷婷 | 国产精品久久久久永久免费观看 | 九九**精品视频免费播放| 久久久午夜电影| 一本大道久久a久久综合婷婷| 亚洲综合一区二区三区| 精品国产91亚洲一区二区三区婷婷| 国产 日韩 欧美大片| 亚洲精品成a人| 久久久精品蜜桃| 欧美精品日韩一区| eeuss国产一区二区三区| 午夜精品福利一区二区蜜股av| 日韩精品专区在线| 欧美熟乱第一页| 99精品视频中文字幕| 久久99精品久久久久| 一区二区三区资源| 国产精品美女视频| 欧美精品一区二区蜜臀亚洲| 欧美日韩和欧美的一区二区| 成人国产亚洲欧美成人综合网| 国内不卡的二区三区中文字幕| 亚洲成人自拍网| 亚洲aaa精品| 丝袜亚洲另类欧美综合| 一区二区三区欧美视频| 亚洲免费在线视频| 综合自拍亚洲综合图不卡区| 国产精品日韩成人| 中文字幕乱码久久午夜不卡| 久久青草国产手机看片福利盒子 | 久久99国内精品| 免费成人在线网站| 国内一区二区视频| 国产一区999| 9人人澡人人爽人人精品| 岛国精品在线播放| 成人精品gif动图一区| 色妹子一区二区| 欧美猛男超大videosgay| 欧美久久婷婷综合色| 日韩视频一区二区三区 | 三级在线观看一区二区| 麻豆高清免费国产一区| 国产精品一级片| 色综合天天性综合| 91精品视频网| 中文字幕日韩一区二区| 亚洲一区二区三区视频在线 | 亚洲色图都市小说| 男女性色大片免费观看一区二区| 激情伊人五月天久久综合| 99久久99久久综合| 日韩你懂的在线观看| 国产精品久久午夜夜伦鲁鲁| 亚洲图片欧美综合| 99久久伊人久久99| 欧美电视剧在线看免费| 亚洲国产成人高清精品| 99久久精品免费看|