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

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

?? cvcam.cpp

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

    else if (strcmp(property, CVCAM_RNDWIDTH) == 0)
    {
        int val = *(int*)value;
        OAFilterState state = State_Stopped;
        
        if(_cvcamMediaControl.is_valid())
            _cvcamMediaControl->GetState(0, &state);
        if(state != State_Stopped)
            cvcamStop();

        cvcam_properties[camera].rndwidth = val;
        
        if(state == State_Running)
            cvcamStart();
        return 0;
    }

    else if (strcmp(property, CVCAM_RNDHEIGHT) == 0)
    {
        int val = *(int*)value;
        OAFilterState state = State_Stopped;
        
        if(_cvcamMediaControl.is_valid())
            _cvcamMediaControl->GetState(0, &state);
        if(state != State_Stopped)
            cvcamStop();
        
        cvcam_properties[camera].rndheight = val;
        if(state == State_Running)
            cvcamStart();
        return 0;
    }



    return -2;
}
/////////////////////////////////////////////////////////////////////////////////////////
/* gets all property names. the actual number of properties is returned. */
CVCAM_API int cvcamGetPropertiesList(int camera, const char** properties, int count)
{
    CHECK_CAMERA((uint)camera);
    if(count-- > 0)
    {
        properties[0] = CVCAM_PROP_ENABLE;
    }
    if(count-- > 0)
    {
        properties[1] = CVCAM_PROP_RENDER;
    }
    if(count-- > 0)
    {
        properties[2] = CVCAM_PROP_WINDOW;
    }

    return 3;
}
/////////////////////////////////////////////////////////////////////////////////////////
/* Prepares the currently enabled cameras for work */
CVCAM_API int cvcamInit()
{
    
//    IBaseFilter* filter;
    vector<SafeUnknown> _objects;

    //*** video source filter have already been created when user call 
    //cvcamSetProperty to enable camera. So we don't need to do it again.
    //
    /* Create a video source filter */
//  _cvcamInitVideoSource(&filter);

    if(_cvcamNumberOfEnabled() == 2)
        return _cvcamInit2Cams();
    
    
    /* Create a proxy transform filter */
    if(FAILED(CoCreateInstance(CLSID_ProxyTransform, NULL, CLSCTX_INPROC_SERVER, 
                    IID_IProxyTransform, (void**)&_cvcamProxyTrans)))
    {
        MessageBox(0,"ProxyTrans.ax is not registered.\nPlease run \"opencv\\bin\\registerall.bat\" to register it.\n"
                   "Also, do not forget to add \"opencv\\bin\" to the system path.", "Error", MB_OK|MB_ICONERROR);
        return 0;
    }

    _cvcamProxyTrans->set_transform(
        (void(__cdecl*)(void*))cvcam_properties[camera_index].callback, 0);


    //*** Again, we already have got one. 
    //
    /* Create a filter graph object */
/*    if(FAILED(CoCreateInstance( CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, 
                      IID_IGraphBuilder, (void **)&_cvcamGraphBuilder )))
    {
        return 0;
    }
*/
    ASSERT(!_cvcamMediaControl.is_valid());
    _cvcamGraphBuilder->QueryInterface(IID_IMediaControl,(void**)&_cvcamMediaControl);
    _cvcamGraphBuilder->QueryInterface(IID_IMediaEventEx,(void**)&_cvcamMediaEventEx);
    _cvcamGraphBuilder->QueryInterface(IID_IVideoWindow, (void**)&_cvcamVideoWindow);

    IBaseFilter* pProxyTrans = 0;
    _cvcamProxyTrans->QueryInterface(IID_IBaseFilter, (void**)&pProxyTrans);
    _objects.push_back(SafeUnknown(pProxyTrans));

    /* link all filters together*/
    if( _cvcamGraphBuilder.is_valid() )
    {
        HRESULT hr;

        //*** It's been added.
//      hr = _cvcamGraphBuilder->AddFilter( (_cvcamSource[camera_index]).value(), L"Video Source" );

        hr = _cvcamGraphBuilder->AddFilter( pProxyTrans, L"Script processing");

        
        IPin* pSourceOut    = get_source_pin( _cvcamSource[camera_index].value(),
                                              PINDIR_OUTPUT );
        IPin* pProxyTransIn     = get_pin( pProxyTrans, PINDIR_INPUT );
        IPin* pProxyTransOut    = get_pin( pProxyTrans, PINDIR_OUTPUT );
        _objects.push_back(SafeUnknown(pSourceOut));
        _objects.push_back(SafeUnknown(pProxyTransIn));
        _objects.push_back(SafeUnknown(pProxyTransOut));
    
        if( pSourceOut && pProxyTransIn && pProxyTransOut )
        {
            
            hr = _cvcamGraphBuilder->Connect(pSourceOut, pProxyTransIn);

            int render;
            cvcamGetProperty(camera_index, CVCAM_PROP_RENDER, &render);
            if(render)
                hr = _cvcamGraphBuilder->Render( pProxyTransOut );

        }
    }

    return 1;
}

//*** I HAVE NOT YET TESTED WORKING WITH 2 CAMERAS.
//
/////////////////////////////////////////////////////////////////////////////////////////
//Makes the graph from 2 cameras and cvSync filter
static int _cvcamInit2Cams()
{
    /* Create a cvSync filter */
    if(FAILED(CoCreateInstance(CLSID_SyncFilter, NULL, CLSCTX_INPROC_SERVER, 
                    IID_ISyncFilter, (void**)&_cvcamCvSync)))
    {
        return 0;
    }

    if(stereo_callback)
        _cvcamCvSync->SetCallBack( (void(__cdecl*)(void*, void*))stereo_callback );
    
    //*** _cvcamGraphBuilder has already been created in _cvcamInitCapFilters.
    //
    /* Create a filter graph object */
/*    if(FAILED(CoCreateInstance( CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, 
                      IID_IGraphBuilder, (void **)&_cvcamGraphBuilder )))
    {
        _cvcamCvSync=NULL;
        return 0;
    }
*/
    ASSERT(!_cvcamMediaControl.is_valid());
    _cvcamGraphBuilder->QueryInterface(IID_IMediaControl,(void**)&_cvcamMediaControl);
    //_cvcamGraphBuilder->QueryInterface(IID_IMediaEventEx,(void**)&_cvcamMediaEventEx);
    //_cvcamGraphBuilder->QueryInterface(IID_IVideoWindow, (void**)&_cvcamVideoWindow);
//    _cvcamGraphBuilder->QueryInterface(IID_IFilterGraph, (void**)&_cvcamFilterGraph);

    IBaseFilter* pSyncFilter = 0;
    _cvcamCvSync->QueryInterface(IID_IBaseFilter, (void**)&pSyncFilter);
    

    vector<SafeUnknown> _objects;
    _objects.push_back(SafeUnknown(pSyncFilter));

/* link all filters together*/
    if( _cvcamGraphBuilder.is_valid() )
    {
        HRESULT hr;

        

        vector<int> indexes;
        
        for(uint i = 0; i < cvcam_properties.size(); i++)
        {
            if(cvcam_properties[i]._enabled)
            {
                //*** All source filters should have been added in .
/*                hr = _cvcamGraphBuilder->AddFilter( (_cvcamSource[i]).value(),
                                                    L"Video Source" );
                if(FAILED(hr)) 
                {
                    //_cvcamGraphBuilder=NULL;
                    //_cvcamCvSync=NULL;
                    return 0;
                }
*/
                indexes.push_back(i);
            }
        }
        
        hr = _cvcamGraphBuilder->AddFilter( pSyncFilter, L"Script processing");
        if(FAILED(hr))
        {
            //_cvcamGraphBuilder=NULL;
            //_cvcamCvSync=NULL;
            return 0;
        }

        
        IPin* pSourceOut1 = get_source_pin( _cvcamSource[indexes[0] ].value(),
                                            PINDIR_OUTPUT );
        if(!pSourceOut1)
        {
            //_cvcamGraphBuilder=NULL;
            //_cvcamCvSync=NULL;
            return 0;
        
        }
        IPin* pSourceOut2 = get_source_pin( _cvcamSource[indexes[1] ].value(),
                                            PINDIR_OUTPUT );
        if(!pSourceOut2)
        {
            //_cvcamGraphBuilder=NULL;
            //_cvcamCvSync=NULL;
            return 0;
        
        }
        

        IPin* pSyncInput1;
        IPin* pSyncInput2;
        IPin* pSyncOutput1;
        IPin* pSyncOutput2;
        pSyncFilter->FindPin(L"Input1", &pSyncInput1);
        pSyncFilter->FindPin(L"Input2", &pSyncInput2);
        pSyncFilter->FindPin(L"Output1", &pSyncOutput1);
        pSyncFilter->FindPin(L"Output2", &pSyncOutput2);

        
        
        _objects.push_back(SafeUnknown(pSourceOut1));
        _objects.push_back(SafeUnknown(pSourceOut2));
        _objects.push_back(SafeUnknown(pSyncInput1));
        _objects.push_back(SafeUnknown(pSyncInput2));
        _objects.push_back(SafeUnknown(pSyncOutput1));
        _objects.push_back(SafeUnknown(pSyncOutput2));
        
        
       
    
        if( pSourceOut1 && pSyncInput1 && pSyncOutput1 )
        {
            
            hr = _cvcamGraphBuilder->Connect(pSourceOut1, pSyncInput1);
            if(FAILED(hr)) 
            {
                //_cvcamGraphBuilder=NULL;
                //_cvcamCvSync=NULL;
                return 0;
            }
            int render;
            cvcamGetProperty(indexes[0], CVCAM_PROP_RENDER, &render);
            if(render)
                hr = _cvcamGraphBuilder->Render( pSyncOutput1 );
                if(FAILED(hr)) 
                {
                   // _cvcamGraphBuilder=NULL;
                    //_cvcamCvSync=NULL;
                    return 0;
                }
        }

        if( pSourceOut2 && pSyncInput2 && pSyncOutput2 )
        {
            
            hr = _cvcamGraphBuilder->Connect(pSourceOut2, pSyncInput2);
            if(FAILED(hr)) 
            {
                //_cvcamGraphBuilder=NULL;
                //_cvcamCvSync=NULL;
                return 0;
            }
            int render;
            cvcamGetProperty(indexes[1], CVCAM_PROP_RENDER, &render);
            
            if(render)
                hr = _cvcamGraphBuilder->Render( pSyncOutput2 );
                if(FAILED(hr)) 
                {
                    //_cvcamGraphBuilder=NULL;
                    //_cvcamCvSync=NULL;
                    return 0;
                }
        }
    
    }


    return 1;
};
/////////////////////////////////////////////////////////////////////////////////////////
int _cvcamStart2()
{
    
    vector<SafeUnknown> _objects;
    IBaseFilter* pcvSync = 0;

    vector<int> indexes;
        
        for(uint i = 0; i < cvcam_properties.size(); i++)
        {
            if(cvcam_properties[i]._enabled)
            {
                indexes.push_back(i);
            }
        }

    if(!(_cvcamCvSync.is_valid()))
        return -1;

    //We'll adjust video windows parameters. As we've possibly got 2 
    //renderers and so 2 windows, we can't get the IVideoWindow interface
    //from IGraphBuilder, so let's go directly to renderers;
    
    if(cvcam_properties[indexes[0]].render||cvcam_properties[indexes[1]].render)
    {
    
        _cvcamCvSync->QueryInterface(IID_IBaseFilter, (void**)&pcvSync);
        _objects.push_back(SafeUnknown(pcvSync));

        IPin* output1;
        IPin* output2;

        ASSERT(pcvSync);

        pcvSync->FindPin(L"Output1", &output1);
        pcvSync->FindPin(L"Output2", &output2);

        _objects.push_back(SafeUnknown(output1));
        _objects.push_back(SafeUnknown(output2));

        ASSERT(output1&&output2);

        if( !_cvcamMediaControl.is_valid() )
        {
            return -1;
        }//if( !_cvcamMediaControl.is_valid() )

        PIN_INFO PinInfo;
        IBaseFilter* renderer;
        IPin* pPin;

        if(cvcam_properties[indexes[0]].render)
        {

            output1->ConnectedTo(&pPin);
            if(!pPin)
                return VFW_E_NOT_CONNECTED;
            _objects.push_back(SafeUnknown(pPin));

            pPin->QueryPinInfo(&PinInfo);
            
            renderer = PinInfo.pFilter;

            _objects.push_back(SafeUnknown(renderer));


            //IVideoWindow* pVideoWindow;
            renderer->QueryInterface(IID_IVideoWindow, (void**)&_cvcamVideoWindow);

            

            HWND hWnd;
        
            cvcamGetProperty(indexes[0], CVCAM_PROP_WINDOW, &hWnd);
            if(!hWnd)
            {
                hWnd = _cvcamCreateWindow();
                cvcamSetProperty(indexes[0], CVCAM_PROP_WINDOW, &hWnd);
            }
            
            _cvcamVideoWindow->put_Owner((OAHWND)hWnd);

            long flags;
            _cvcamVideoWindow->get_WindowStyle(&flags);
            _cvcamVideoWindow->put_WindowStyle(flags & (~WS_CAPTION) | WS_CHILD);
            _cvcamVideoWindow->put_MessageDrain((OAHWND)hWnd);

            // Get the rectangle dimensions and resize the client window
            AM_MEDIA_TYPE amt;
            pPin->ConnectionMediaType(&amt);
            VIDEOINFOHEADER* vih = (VIDEOINFOHEADER*)amt.pbFormat;
            if(!vih)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩在线一区二区三区视频| 中文字幕精品一区| 欧美激情一区二区| 日本欧美一区二区| 色婷婷激情一区二区三区| 国产亚洲欧美激情| 美国毛片一区二区| 欧美亚洲国产一区在线观看网站| 国产日韩欧美激情| 激情图区综合网| 欧美电影在哪看比较好| 亚洲精品美腿丝袜| 成人免费观看av| 精品乱码亚洲一区二区不卡| 午夜伊人狠狠久久| 在线观看日韩电影| 亚洲人精品一区| 成人黄色电影在线| 国产亚洲福利社区一区| 久久国产剧场电影| 91精品国产麻豆国产自产在线 | 日韩av中文字幕一区二区三区| 色播五月激情综合网| 亚洲欧美国产77777| 成人18精品视频| 国产精品全国免费观看高清 | 国产欧美日韩麻豆91| 国产福利一区二区三区在线视频| 日韩欧美一级片| 秋霞午夜av一区二区三区| 日韩一区二区免费高清| 蜜臀久久99精品久久久画质超高清| 欧美日韩黄色影视| 亚洲国产精品一区二区尤物区| 欧美性三三影院| 日韩精彩视频在线观看| 国产精品久久777777| 国产精品一区二区三区乱码| 久久久久久久电影| 成人av午夜电影| 亚洲欧美日韩一区二区三区在线观看| av欧美精品.com| 亚洲一区二区三区四区不卡 | 97久久精品人人做人人爽| 一色屋精品亚洲香蕉网站| 色婷婷综合久久久久中文| 亚洲国产一二三| 日韩女优av电影| 国产成人综合亚洲网站| 亚洲视频一二区| 欧美三级在线视频| 免费看欧美美女黄的网站| 久久网站热最新地址| 99久久婷婷国产综合精品| 亚洲精品免费电影| 日韩免费看的电影| 高清成人在线观看| 亚洲无人区一区| 精品国产免费人成电影在线观看四季| 国产成人av网站| 亚洲一二三四在线观看| 精品久久国产97色综合| 成人av网站免费观看| 亚洲 欧美综合在线网络| 精品精品国产高清a毛片牛牛| 成人性视频免费网站| 午夜天堂影视香蕉久久| 欧美激情艳妇裸体舞| 欧美日韩综合一区| 国产成人aaaa| 日本不卡123| 国产精品女主播在线观看| 91.com在线观看| kk眼镜猥琐国模调教系列一区二区| 午夜亚洲福利老司机| 国产亚洲一区二区三区四区| 欧美日韩高清一区二区| 国产不卡高清在线观看视频| 亚洲韩国一区二区三区| 国产精品视频看| 欧美电影免费观看高清完整版在 | 亚洲午夜精品久久久久久久久| 久久亚洲一区二区三区明星换脸 | 色综合久久综合网欧美综合网 | 中文字幕av资源一区| 欧美一区二区在线免费播放| 91一区一区三区| 国产成人综合精品三级| 免费看黄色91| 天堂一区二区在线免费观看| 亚洲另类在线视频| 日韩高清不卡在线| 亚洲丝袜美腿综合| 国产午夜精品一区二区三区嫩草 | 中文字幕免费不卡在线| 欧美电影免费观看高清完整版在线 | 欧美精品 国产精品| av一区二区三区| 国产成人精品一区二| 免费在线看一区| 午夜精品福利在线| 亚洲国产aⅴ天堂久久| 亚洲免费在线观看视频| 亚洲欧洲国产日韩| 中文字幕免费观看一区| 久久综合久久久久88| 精品久久久网站| 欧美成人a在线| 91精品国产综合久久蜜臀 | 久久久777精品电影网影网| 3d动漫精品啪啪一区二区竹菊| 在线观看av一区二区| 色天使色偷偷av一区二区| 一本久久a久久精品亚洲| k8久久久一区二区三区| aaa亚洲精品一二三区| www.亚洲色图.com| 99久久精品免费观看| 色婷婷国产精品综合在线观看| 日本道在线观看一区二区| 在线精品视频免费观看| 欧美在线短视频| 欧美区在线观看| 日韩免费在线观看| 久久久久久夜精品精品免费| 国产亚洲精品精华液| 综合亚洲深深色噜噜狠狠网站| 亚洲欧洲日韩在线| 亚洲国产cao| 久久精品国产精品亚洲精品| 国产精品456露脸| 成人高清免费在线播放| 91国偷自产一区二区开放时间| 欧美精品乱码久久久久久按摩| 欧美一级高清片| 亚洲国产精品高清| 亚洲一区二区欧美激情| 蜜臀av一区二区在线免费观看| 国产盗摄视频一区二区三区| 99精品久久免费看蜜臀剧情介绍| 精品视频一区二区不卡| 欧美电视剧在线观看完整版| 国产欧美日韩卡一| 亚洲综合网站在线观看| 久久国产精品一区二区| 91香蕉视频mp4| 91.xcao| 综合婷婷亚洲小说| 麻豆成人久久精品二区三区红| 欧美精品一级二级| 精品美女一区二区| 一区二区三区四区国产精品| 日韩国产一二三区| 99视频一区二区| 欧美一级爆毛片| 亚洲少妇最新在线视频| 久久精品国产在热久久| 色综合天天在线| 精品国产一区二区在线观看| 亚洲丝袜制服诱惑| 国产一区二区精品久久| 欧美亚洲免费在线一区| 国产日本一区二区| 日本一区中文字幕| 91国产成人在线| 国产女人18毛片水真多成人如厕| 午夜精品福利一区二区三区av | 一本大道av一区二区在线播放| 日韩一区和二区| 一区二区三区四区在线| 国产一区视频网站| 欧美精品久久久久久久多人混战 | 不卡的电视剧免费网站有什么| 91精品国产91久久久久久一区二区| 国产视频一区二区在线| 免费在线欧美视频| 在线亚洲一区观看| 国产精品福利一区| 国产成人av资源| 久久影院午夜片一区| 日韩avvvv在线播放| 欧美三级乱人伦电影| 国产精品久久久久久久久快鸭| 激情综合色综合久久综合| 日韩欧美亚洲另类制服综合在线| 亚洲精品国产一区二区精华液| 不卡一二三区首页| 国产精品国产三级国产三级人妇| 国产一区二区伦理片| 久久免费看少妇高潮| 国产自产2019最新不卡| 精品精品欲导航| 精品一区二区三区视频在线观看| 欧美一区二区三区性视频| 亚洲图片欧美一区| 欧美久久久影院| 日韩在线一二三区| 欧美日韩精品一区二区| 日韩一区欧美二区| 在线播放一区二区三区|