opencv1.0打开笔记本自带摄像头显示黑屏,怎么解决
下面是我在网上找的程序,能正常编译运行,摄像头没有问题,我用的是联想G580,win732位系统。
CvCapture* capture; //用于采集摄像头数据
CRect rect; //HDC用,下同
CDC *pDC;
HDC hDC;
CWnd *pwnd;
pwnd = GetDlgItem(IDC_STATIC);//获取句柄
pDC =pwnd->GetDC();//设备上下文操作
hDC= pDC->GetSafeHdc();//
pwnd->GetClientRect(&rect);
void CTestDlg::OnOpen()
{
// TODO: Add your control notification handler code here
if(capture)
{
capture = cvCreateCameraCapture(-1);
}
if(capture==NULL)
{
AfxMessageBox("无法打开摄像头");
return;
}
IplImage*m_Frame;
m_Frame=cvQueryFrame(capture);//从摄像头抓取一帧图像
CvvImage m_CvvImage;
m_CvvImage.CopyOf(m_Frame,3);//将m_Frame复制到当前对象中,复制后图像通道为3,即RGB
m_CvvImage.DrawToHDC(hDC,&rect);
//设置定时器,每1ms触发一次事件
SetTimer(1,1,NULL);
}
void CTestDlg::OnTimer(UINT nIDEvent)
{
IplImage*m_Frame;
m_Frame=cvQueryFrame(capture);//从摄像头抓取一帧图像
CvvImage m_CvvImage;
m_CvvImage.CopyOf(m_Frame,3);//将m_Frame复制到当前对象中,复制后图像通道为3,即RGB
m_CvvImage.DrawToHDC(hDC,&rect);
CDialog::OnTimer(nIDEvent);
}
本人是新手,,请说的详细一点,谢谢!!!