2 qq562487510 qq562487510 于 2016.01.27 18:44 提问

linux下qt中opencv打开摄像头HIGHGUI ERROR:OpenCV Error:

我在Ubuntu下用qt结合opencv做一个人眼状态识别的程序,qt做界面,程序在vs控制台环境下已经可以运行,但是qt下出错。错误信息 如下:
HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP
OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /home/mkc/opencv/opencvinstallor/opencv-2.4.9/modules/imgproc/src/color.cpp, line 3737
Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.

  1. 我的程序思路是用opencv打开摄像头并捕捉每一帧,做完处理,最后在qt的label上显示,其间做了一个mat到QImage的转换, 2.用opencv官方程序圈出人脸。我单纯的将这一步写进qt运行没问题,能将摄像头显示在label上,但是将自己完整的一直到人眼状态识别代码写进去就报错。 3.中间用了opencv新版的Mat格式,也用了IplImage的图像格式,在Ubuntu下单纯编译也没错,但是到了qt下就闪退。 4.我百度得到的可能性是:如果有空帧的话,cvtColor会报错,后来我将 if( !frame.empty() )写在打开摄像头后还是报错。 我自己根本不太懂opencv和qt,所以一直没解决,会不会是是mat还有IplImage、QImage三种格式之间转换出了问题。 希望各位遇见过的各位能给与帮助,不甚感激。

1个回答

oyljerry
oyljerry   Ds   Rxr 2016.01.27 18:56

异常报错了,触发了,你直接调试下看看对应的参数等是否正确

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!