opencv1.0打开笔记本自带摄像头显示黑屏,怎么解决

duinie3275 2016-05-15 08:13:40
下面是我在网上找的程序,能正常编译运行,摄像头没有问题,我用的是联想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);

}
本人是新手,,请说的详细一点,谢谢!!!
...全文
568 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
duinie3275 2016-05-16
  • 打赏
  • 举报
回复
试过了,可是还是没有变化,不过还是谢谢了
shiter 2016-05-16
  • 打赏
  • 举报
回复
IplImage*m_Frame; m_Frame=cvQueryFrame(capture);//从摄像头抓取一帧图像 m_Frame看一下这个里面有数据没有,不行就是可能没有配置正确,另外opencv1的话好像是用vfw搞的摄像头,联想这个我想以前就有人用opencv打不开,你试试用opencv2或者3的api
赵4老师 2016-05-15
  • 打赏
  • 举报
回复
设备管理器中启用摄像头 有物理开关的话,打开 使用驱动精灵软件升级驱动 ……

19,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧