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

用是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);
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Teleger

你的支持是我前进的方向

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值