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.
为什么会发生此错误?
答案 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,这意味着一个或两个逻辑语句都失败了......(因此有三种可能性)