使用OpenCV和Node.js进行分段错误

时间:2016-08-09 16:17:07

标签: javascript node.js opencv npm

我正在尝试检测节点脚本中的一系列图像上的面部,并且我遇到了分段错误。

发生错误时,这是​​控制台的输出:

enter code here

OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /tmp/opencv-20160626-26273-1a7s2xo/opencv-2.4.13/modules/core/src/array.cpp, line 2482
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /tmp/opencv-20160626-26273-1a7s2xo/opencv-2.4.13/modules/core/src/array.cpp, line 2482
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /tmp/opencv-20160626-26273-1a7s2xo/opencv-2.4.13/modules/core/src/array.cpp, line 2482
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /tmp/opencv-20160626-26273-1a7s2xo/opencv-2.4.13/modules/core/src/array.cpp, line 2482
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /tmp/opencv-20160626-26273-1a7s2xo/opencv-2.4.13/modules/core/src/array.cpp, line 2482
Segmentation fault: 11

以下是尝试在图像文件夹上运行时产生错误的代码:

glob.sync('*.jpg' ).forEach( function( file,index,array ) {

cv.readImage(file, function(err, im){
im.detectObject(cv.FACE_CASCADE, {}, function(err, faces){
    if(faces.length>0){

        //do something

    }
    else{

        //do another thing
    }

  });
})

});

我有时会在faces.length上看到“无法读取udnefined的属性长度”,但我真正想要解决的是分段错误。我已经做了一些研究,尝试使用不同的xml文件进行opencv人脸检测,但仍然没有运气

1 个答案:

答案 0 :(得分:0)

我有同样的问题,我解决了处理并发请求“ .detectObject()

我的意思是,等到上次调用detectObject()完成。

在某些情况下,使用更好的处理器我没有这个问题,但在ARM中我通过这种控制来解决这个问题。