1.下载Directshow并配置
2.CvvImage类的调用(在picture控件上显示)
3.opencv2.4.10的配置
一.设置了四个控件,并为控件添加变量:
1.一个picture control 图片控件
2.一个打开相机按钮
3.一个连拍按钮
4.一个关闭按钮
二.事件处理函数
(1)打开相机事件函数:
1.通过GetDlgItem(IDC_picture)来获得窗口对象指针CWnd *pwnd
2.通过窗口对象指针CDC *pDC=pwnd->GetDC()来获得设备上下文类指针pDC
3.通过pDC->GetSafeHdc()来获得hdc句柄
4.GetDlgItem(IDC_picture)->GetClientRect(&rect)来获得客户区
5.打开相机并使按钮失效
camera.OpenCamera(m_Id, false,320,240);
GetDlgItem(IDC_openCamera)->EnableWindow(false);//打开相机按钮失效
(2)连拍函数:
1.GetDlgItem(IDC_Snatch)->EnableWindow(true);连拍按钮有效
2.设置定时器(定时器必须设置在连拍函数中,保证关闭后按连拍按钮能重新打开)
(3)定时器Ontimer()函数:
m_Frame=camera.QueryFrame();//前相机抓图
m_CvvImage.CopyOf(m_Frame,3)//图片显示
m_CvvImage.DrawToHDC(hDC, &rect);;
CDialogEx::OnTimer(nIDEvent); //重新调用Ontimer()函数:
(4)关闭函数:
KillTimer(1);
MFC的运行机制:
1.设置好对话框界面
2.初始化:读取配置信息,打开相机,打开串口,开始连拍(开启定时器)
3.在定时器消息中进行图像获取,处理,显示并刷新变量的值。