用是vs2013新建一個(gè)空的 mfc項(xiàng)目,配置該項(xiàng)目的屬性。讓該項(xiàng)目可以調(diào)用opencv的庫(kù)以及相關(guān)函數(shù)。
//CMFCapplication12345Dlg 這個(gè)是主類名
void CMFCApplication12345Dlg::openCamer(){VideoCapture Capture(0);if (!Capture.isOpened()){return;}Mat frame;camersta = false;//打開(kāi)狀態(tài)while(!camersta){Capture >> frame;if (frame.rows != 0)img = &frame.Operator iplImage();DrawToMFC(IDC_STATIC, img);}}UINT CMFCApplication12345Dlg::OnDis1(LPVOID param)//處理線程{CMFCApplication12345Dlg *pDemo = (CMFCApplication12345Dlg *)param;pDemo->openCamer();return 0;}void CMFCApplication12345Dlg::OnBnClickedButton1() //打開(kāi)攝像頭 按鈕{// TODO: 在此添加控件通知處理程序代碼AfxBeginThread(OnDis1, this);//為什么要用線程。 //從打開(kāi)攝像頭的方式看,用了while。 程序陷入死循環(huán)。此時(shí)想點(diǎn)擊關(guān)閉按鈕,無(wú)響應(yīng)。}void CMFCApplication12345Dlg::OnBnClickedButton2()//關(guān)閉按鈕 做的事情{// TODO: 在此添加控件通知處理程序代碼camersta = true;}void CMFCApplication12345Dlg::DrawToMFC(int Ctrol_ID, IplImage *pImage){CDC* pDC = GetDlgItem(Ctrol_ID)->GetDC();HDC hDC = pDC->GetSafeHdc();CvvImage cimg;cimg.CopyOf(pImage);CRect rect;GetDlgItem(Ctrol_ID)->GetClientRect(&rect);cimg.DrawToHDC(hDC, &rect);ReleaseDC(pDC);}
|
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注