ubuntu下qt+opencv的HIGHGUI ERROR:HIGHGUI ERROR
毛浣熊 2016-01-27 06:44:57 我在Ubuntu下用qt结合opencv做一个人眼状态识别的程序,qt做界面,程序在vs控制台环境下已经可以运行,但是qt下编译通过,运行时出错退出。摄像头被打开一瞬间,错误信息 如下:
HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP
HIGHGUI 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三种格式之间转换出了问题。
希望遇到这种情况的能给小弟指点一下,不胜感激。