opencv错误断言失败

时间:2015-08-03 16:33:38

标签: opencv

OpenCV错误:

 Assertion failed (scaleFactor > 1 && image.depth() == CV_8U) in detectMultiScale, file /build/buildd/opencv-2.4.9+dfsg/modules/objdetect/src/cascadedetect.cpp, line 1081
    terminate called after throwing an instance of 'cv::Exception'
      what():  /build/buildd/opencv-2.4.9+dfsg/modules/objdetect/src/cascadedetect.cpp:1081: error: (-215) scaleFactor > 1 && image.depth() == CV_8U in function detectMultiScale.

为什么会发生此错误?

1 个答案:

答案 0 :(得分:3)

查看cascade classifier detectMultiScale documentation.

void CascadeClassifier::detectMultiScale(const Mat& image, vector<Rect>& objects, double scaleFactor=1.1, int minNeighbors=3, int flags=0, Size minSize=Size(), Size maxSize=Size())

图片表明:

  

CV_8U 类型的矩阵,其中包含对象所在的图像   检测

对于 scaleFactor ,它声明:

  

参数指定每个图像比例下图像尺寸 缩小 的程度。

如果您了解级联分类器的工作方式,您会注意到scaleFactor低于零并不会有用。

断言试图告诉你你需要什么,所以向后读它 - 它失败了:

 (scaleFactor > 1 && image.depth() == CV_8U)

...返回'0' - 因为我们使用布尔AND,这意味着一个或两个逻辑语句都失败了......(因此有三种可能性)