關(guān)于攝像頭的控制操作,無(wú)非就是獲取攝像頭圖像并且保存攝像頭視頻等常用的操作。
關(guān)于在MFC項(xiàng)目中利用opencv捕獲攝像頭信息,在下面這篇文章中寫的很詳細(xì):
http://blog.csdn.net/weixingstudio/article/details/7360941
writer=cvCreateVideoWriter("MyVideo.avi",CV_FOURCC('x','v','I','D'),25,cvSize(640,480));
CvCapture* capture;CRect rect;CDC *pDC;HDC hDC;CWnd *pwnd;
void CVideoMFCDlg::OnBnClickedButton1(){ // TODO: Add your control notification handler code here //AfxMessageBox("OK"); if(!capture) { capture = cvCaptureFromCAM(0); //AfxMessageBox("OK"); } if (!capture) { AfxMessageBox("無(wú)法打開攝像頭"); return; } writer=cvCreateVideoWriter("MyVideo.avi",CV_FOURCC('x','v','I','D'),25,cvSize(640,480)); // 測(cè)試 IplImage* m_Frame; m_Frame=cvQueryFrame(capture); CvvImage m_CvvImage; m_CvvImage.CopyOf(m_Frame,1); if (true) { m_CvvImage.DrawToHDC(hDC, &rect); //cvWaitKey(10); } // 設(shè)置計(jì)時(shí)器,每10ms觸發(fā)一次事件 SetTimer(1,10,NULL);}
void CVideoMFCDlg::OnTimer(UINT_PTR nIDEvent){ // TODO: Add your message handler code here and/or call default /************************************************************************/ /* 顯示攝像頭 */ /************************************************************************/ IplImage* m_Frame; m_Frame=cvQueryFrame(capture); CvvImage m_CvvImage; m_CvvImage.CopyOf(m_Frame,1); if (true) { m_CvvImage.DrawToHDC(hDC, &rect); cvWriteFrame(writer,m_Frame); //cvWaitKey(10); } CDialogEx::OnTimer(nIDEvent);}
關(guān)于整個(gè)顯示攝像頭并且保存攝像頭信息的工程源碼,可以從下面鏈接下載:
http://download.csdn.net/detail/weixingstudio/4284066
聯(lián)系客服