天天看點

MFC+OPENCV實作JPEG圖檔的播放

用vc6.0進行開發真的有點蛋疼,在實作jpeg圖檔的播放,vc6.0的picture控件居然隻支援位圖>_<

開始想法是在程式中加一個編碼過程,邊讀圖邊解碼邊顯示,先将jpeg圖檔轉化為位圖再顯示,但代價是在opencv中的自帶的函數支援編解碼,但要先寫下來,是以讀寫再度時間較長無法滿足實時性的要求;

第二種方法是用vtk中帶的vtkjpegreader類,在mfc中建立一個vtk的自定義控件,後讀入顯示,但結果是讀入顯示太慢,螢幕會一閃一閃的,速度太慢,查資料說要用雙緩沖的技術;

後繼續找資料,找到了cvvimage的類,這個類功能有點強;

opencv vc6.0的配置直接網上搜吧,這裡不在累述

建立一個界面,如圖:

MFC+OPENCV實作JPEG圖檔的播放

簡單地包含一個picture的控件和一個按鈕控件

設定picture控件的id為:idc_picture

往dlg.c檔案中加入opencv的頭檔案:

在debug運作時還應加入highgui100.dll到目錄下

接着對按鈕繼續消息相應函數的編寫:

在mfc的架構下cvwaitkey();這一函數無法延時;

用for(;;)循環也不能進行延時;

經測試sleep()可以進行延時

結果是應該能達到二十多幀,

結果:

MFC+OPENCV實作JPEG圖檔的播放

雙緩沖的技術可能馬上就會用到>_<

除非有特殊要求,勁量還是不要用vc6.0

MFC+OPENCV實作JPEG圖檔的播放

繼續閱讀