首页新闻找找看学习计划

Qt GUI窗口内无法用opencv创建视频

0
悬赏园豆:20 [待解决问题]

刚学习Qt,想利用opencv打开摄像头并将视频加载在Qt窗体中

 1 void QtGUIEx::on_openCamera_clicked()
 2 {
 3     cv::VideoCapture cap(0);
 4     if (!cap.isOpened())
 5     {
 6         return;
 7     }
 8     
 9     cv::Mat frame;
10     cap >> frame;
11     //cv::namedWindow("video");
12     while(!frame.empty()){
13         cv::cvtColor(frame, frame, CV_BGR2RGB);
14         QImage qimg((const uchar*)(frame.data), frame.cols, frame.rows, QImage::Format_RGB888);
15         ui.video->setPixmap(QPixmap::fromImage(qimg));
16         cv::waitKey(10);
17         cap >> frame;
18     }
19 }

但是只有加上注释掉的cv::namedWindow(),Qt窗口中才会显示视频。

原因不解,求指教!

_点点滴滴_的主页 _点点滴滴_ | 初学一级 | 园豆:182
提问于:2013-07-09 23:53
< >
分享
所有回答(1)
0

遇到同样问题,请问你最后是如何解决的呢?

babel | 园豆:222 (菜鸟二级) | 2013-08-31 17:43

cv::waitKey只对opencv创建的窗体有作用(即cv::namedWindow),把该行注释掉后cv::waitKey()的暂停功能就无效了,所以qt没有足够的时间绘出图像。而qt提供有Qtimer类,用这个实现暂停功能就可以了。

支持(0) 反对(0) _点点滴滴_ | 园豆:182 (初学一级) | 2013-09-05 19:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册