1.环境是qt5.7 + opencv3.1+win7
2.然后关键的代码是
void Dialog::sltBtnOpenCamera()
{
//打开摄像头 从摄像头中获取视频
m_camera = cvCreateCameraCapture(0);
//开启定时器 没隔0.5秒刷新一次
m_timer->start(500);
}
void Dialog::sltTimeOut()
{
//读取摄像头信息 将读取回来的帧转换成QImage类型 并在主界面的QLabel中显示
//从摄像头中抓取并返回每一帧
m_imgFrame = cvQueryFrame(m_camera);
//将抓取到的帧转换成QImage格式
QImage showImage((const uchar*)m_imgFrame->imageData, m_imgFrame->width, m_imgFrame->height, QImage::Format_RGB888);
//将图片显示到QLabel上
ui->m_lbPhoto->setPixmap(QPixmap::fromImage(showImage));
}
void Dialog::sltBtnCloseCamera()
{
//停止定时器
m_timer->stop();
//释放摄像头内存
cvReleaseCapture(&m_camera);
}
3.最后能打开摄像头 但是label上显示是一片黑,如图
本人是菜鸟 刚学qt 求大神指导~~