當前位置:編程學習大全網 - 源碼下載 - 請問如何用VC++從圖像采集卡(連接攝像頭)獲取圖像?

請問如何用VC++從圖像采集卡(連接攝像頭)獲取圖像?

目前,在vc上采集視頻常用的方法有三種:vfw、directshow和opencv。

如果想做圖像處理,推薦opencv(參考於,opencv課程基礎部分的例子3-6,估計稍加修改就可以用在妳的項目中)。

我做的壹個小項目貼在下面:如果有疑問,電子郵件:zhoutingzhi@gmail.com。

準備opencv,妳要看那本書,訪問opencv中文網。

/index . PHP/% E9 % A6 % 96% E9 % a 1% B5

有問題可以找我討論(我也是菜鳥,剛剛還在竊喜解決了這個問題)。

1.創建壹個新的mfc對話框項目,並在其中添加壹個圖片控件,除了ID之外不做任何更改。

2.在對話框頭文件(沒有Dlg的那個)中添加(最好在“# include " resource . h "//main symbols”之後):

#包含“cxcore.h”

#包含" cvcam.h "

#包含“windows.h”

#包括“簡歷”

#包含“highgui.h”

3.在工程-設置-選擇所有配置-》鏈接-對象/庫模塊-添加:

kernel 32 . lib user 32 . lib GDI 32 . lib winspool . lib com DLG 32 . lib advapi 32 . lib shell 32 . lib ole 32 . lib oleaut32 . lib uuid . lib odbc 32 . lib odbccp 32 . lib CX core . lib cv . lib ml . lib cvaux . lib high GUI . lib cvcam . lib

4.添加:

void CVideomfcDlg::on button 1()

{

// TODO:在此添加控件通知處理程序代碼

int ncams = cvcamGetCamerasCount();//返回可以訪問的攝像機數量。

HWND MyWin=::GetDlgItem(m_hWnd,IDC _ VIDEO);//獲取控制句柄(IDC_VIDEO為圖片控件)

cvcamSetProperty(0,CVCAM_PROP_ENABLE,CVCAMTRUE);//選擇第壹臺攝像機

int width = 240

int height = 240

cvcamSetProperty(0,CVCAM_PROP_WINDOW,& ampMyWin);//為選擇壹個窗口

cvcamSetProperty(0,CVCAM_RNDWIDTH,& amp寬度);

cvcamSetProperty(0,CVCAM_RNDHEIGHT,& amp身高);

cvcamSetProperty(0,CVCAM_PROP_CALLBACK,CALLBACK 1);

//回調函數會處理每壹幀。

cvcamInit();

cvcamStart();

}

5.更改顯示圖像序列的大小,並在設置窗口屬性後,添加以下代碼:

int width = 320//這是要顯示的窗口大小。

int height = 240//根據自己的需求選擇

cvcamSetProperty(0,CVCAM_RNDWIDTH,& amp寬度);

cvcamSetProperty(0,CVCAM_RNDHEIGHT,& amp身高);

6.在對話框類中添加壹個回調成員函數(註意添加函數的時候壹定要選擇static,不然妳自己也會郁悶,反正我已經為此郁悶2周了)。

void CVideomfcDlg::callback 1(IPL image * image)

{

IPL image * image 1 = image;

int i,j;

斷言(圖像);

//獲取當前系統時間

system time st2 = { 0 };

GetLocalTime(& amp;st2);

char sss[18]={'C ',':',' \\ ',' \\ ',1 ',' \\ ',1 ',' 1 ',' 1 ',' 1 ',' 1 ',' 1 ',' 1 ',',' j ',' p ',' g ' };//這是用來存儲要保存的圖片名稱的。先定義,再修改數組值,這是很蠢的做法。

SSS[7]= st2 . whour/10+48;//獲取當前系統時間。

SSS[8]= st2 . whour % 10+48;

SSS[9]= st2 . w minute/10+48;//獲取系統的當前分鐘。

SSS[10]= st2 . w minute % 10+48;

SSS[11]= st2 . wsecond/10+48;//獲取系統的當前秒。

SSS[12]= st2 . ws second % 10+48;

cvSaveImage(sss,image 1);//使用當前系統時間為名稱存儲圖片(XXXXXX.jpg)。

}

Ps:妳還需要在c盤根目錄下創建壹個名為1的文件夾來保存圖片。

祝妳成功!

  • 上一篇:電表e=ce什麽意思
  • 下一篇:妳認為未來生活是什麽樣子的英語作文
  • copyright 2024編程學習大全網