首页 > 学院 > 开发设计 > 正文

MFC中调用opencv里摄像头的实例

2019-11-14 08:56:16
字体:
来源:转载
供稿:网友

用是vs2013新建一个空的 mfc项目,配置该项目的属性。让该项目可以调用opencv的库以及相关函数。

//CMFCapplication12345Dlg  这个是主类名

void CMFCApplication12345Dlg::openCamer(){VideoCapture Capture(0);if (!Capture.isOpened()){return;}Mat frame;camersta = false;//打开状态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()  //打开摄像头  按钮{// TODO:  在此添加控件通知处理程序代码AfxBeginThread(OnDis1, this);//为什么要用线程。   //从打开摄像头的方式看,用了while。 程序陷入死循环。此时想点击关闭按钮,无响应。}void CMFCApplication12345Dlg::OnBnClickedButton2()//关闭按钮 做的事情{// 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);}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表