<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    1.0.2-學習Opencv與MFC混合編程之---為播放AVI視頻添加滑動條

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    源代碼地址:http://download.csdn.net/detail/nuptboyzhb/3961642

    版本1.0.2新增內容

    Ø  全局變量和函數的添加:

    在CVMFCview.cpp文件中增加全局變量和全局函數

    //-----------------全局變量和函數---------------------------------------

    int g_slider_position=0;

    CvCapture *g_capture;

    void onTrackbarSlide(int pos)

    {

       cvSetCaptureProperty(g_capture,CV_CAP_PROP_POS_FRAMES,pos);

    }

    //--效果如下:

    注意:上述全局函數,不能作為類得成員變量的形式添加

    Ø  改寫void CCVMFCView::OnPlAYAVITEST()函數

    具體代碼如下:

    void CCVMFCView::OnPlAYAVITEST()

    {

             // TODO: Add your command handler code here

             //鄭海波 2011年12月9日

             //參考:learning opencv  Page21

             CString csFilter="AVI Files(*.AVI)|*.AVI||";

             CString strFileName;

     

             CFileDialog FileDlg(true,NULL,NULL,OFN_HIDEREADONLY,csFilter);//  文件存盤對話框

             if (FileDlg.DoModal()==IDOK )

             {         //  選擇了文件名

                       strFileName = FileDlg.m_ofn.lpstrFile;

                       if (FileDlg.m_ofn.nFileExtension == 0)

                       {  //  無文件后綴

                                strFileName = strFileName + ".avi";

                                //  加文件后綴

                       }

                       CString WindowName1="Display by CV";//創建窗口的名稱

                       cvNamedWindow(WindowName1,CV_WINDOW_AUTOSIZE);//創建窗口

                      //CvCapture *capture =cvCreateFileCapture(strFileName);//由待播放的視頻名,創建CvCapture指針

                       //----------------------------------------------------------------

                       g_capture =cvCreateFileCapture(strFileName);//由待播放的視頻名,創建CvCapture指針

                       int frames=(int)cvGetCaptureProperty(g_capture,CV_CAP_PROP_FRAME_COUNT);//得到視頻中幀的總數

                       if(frames!=0)

                       {

                                cvCreateTrackbar("position",WindowName1,&g_slider_position,frames,onTrackbarSlide);

                       }

                       //----------------------------------------------------------------

                       IplImage *frame;//創建圖像指針 用作顯示的圖片

                       while(1)

                       {

                                frame=cvQueryFrame(g_capture);//從g_capture 獲取一幀圖像

                                if(!frame)

                                {

                                         break;

                                }

                                cvShowImage(WindowName1,frame);

                                char c=cvWaitKey(33);//等待33毫秒,如果無按鍵,返回值c=-1。如果有按鍵,返回按鍵的ASCII值

                                g_slider_position++;//

                cvCreateTrackbar("position",WindowName1,&g_slider_position,frames,onTrackbarSlide);

                if(c==27)//27是Esc按鍵的ASCII值

                                {

                                         break;//按下ESc鍵,停止播放

                                }

                       }

                       cvReleaseCapture(&g_capture);

                       cvDestroyWindow(WindowName1);

             }

    }

     

    from:http://blog.csdn.net/nupt123456789/article/details/7097896

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全