在vs2010的MFC中打开OpenCV的摄像头,并显示在picture control控件中,可是显示不了,摄像头没问题

这是代码//VideoMFCDlg.cpp:实现文件//#include"opencv2/objdetect/objdetect.hpp"#include"opencv2... 这是代码

// VideoMFCDlg.cpp : 实现文件
//#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
……
CvCapture* capture;
CRect rect;
CDC *pDC;
HDC hDC;
CWnd *pwnd;
……
BOOL CVideoMFCDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
……
// TODO: 在此添加额外的初始化代码
pwnd = GetDlgItem(IDC_STATIC);
pDC = pwnd->GetDC();
hDC = pDC->GetSafeHdc();
pwnd->GetClientRect(&rect);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
……
void CVideoMFCDlg::OnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
if(!capture)
{
//int count = 0;
//while(count<10) count++;
capture = cvCaptureFromCAM( 0 );
if(capture) AfxMessageBox(_T("ok"));
}
if(!capture)
{
AfxMessageBox(_T("无法打开摄像头"));
return;
}
//测试..
IplImage* m_Frame;
m_Frame = cvQueryFrame( capture );
CvvImage m_CvvImage;
m_CvvImage.CopyOf(m_Frame,1);

if(true)
{
m_CvvImage.DrawToHDC(hDC,&rect);
}
//设置计时器,每10ms触发一次事件..

SetTimer(1,10,NULL);
}
void CVideoMFCDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
IplImage* m_Frame;
m_Frame = cvQueryFrame(capture);
CvvImage m_CvvImage;
m_CvvImage.CopyOf(m_Frame,1);
if(true)
{
m_CvvImage.DrawToHDC(hDC,&rect);
}
CDialogEx::OnTimer(nIDEvent);
}
……

void CVideoMFCDlg::OnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
cvReleaseCapture(&capture);
CDC MemDC;
CBitmap m_Bitmap1;
m_Bitmap1.LoadBitmap(IDB_BITMAP1);
MemDC.CreateCompatibleDC(NULL);
MemDC.SelectObject(&m_Bitmap1);
pDC->StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),&MemDC,0,0,48,48,SRCCOPY);
}
展开
 我来答
归悦欣cf
2015-05-20 · TA获得超过1443个赞
知道大有可为答主
回答量:4250
采纳率:59%
帮助的人:1323万
展开全部
if(!capture)
{
//int count = 0;
//while(count<10) count++;
capture = cvCaptureFromCAM( 0 );
if(capture) AfxMessageBox(_T("ok"));
}
代码运行到if里面了吗?
追问
运行到了,会显示出ok
微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式