OpenCV(3.4.1)错误:断言失败(_img.rows * _img.cols == vecSize)

时间:2018-06-18 19:15:28

标签: opencv haar-classifier

我尝试在cmd中运行opencv_traincascade,但它会立即崩溃并提供输出。

opencv_traincascade -data data -vec pos.vec -bg neg.lst -numPos 31 -numNeg 
100 -numStages 10 -w 20 -h 20 
PARAMETERS:
cascadeDirName: data
vecFileName: pos.vec
bgFileName: neg.lst
numPos: 31
numNeg: 100
numStages: 10
precalcValBufSize[Mb] : 1024
precalcIdxBufSize[Mb] : 1024
acceptanceRatioBreakValue : -1
stageType: BOOST
featureType: HAAR
sampleWidth: 20
sampleHeight: 20
boostType: GAB
minHitRate: 0.995
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
mode: BASIC
Number of unique features given windowSize [20,20] : 78460

以下是错误消息:

===== TRAINING 0-stage =====
<BEGIN
OpenCV(3.4.1) Error: Assertion failed (_img.rows * _img.cols == vecSize) in 
CvCascadeImageReader::PosReader::get, file C:\build\master_winpack-build- 
win64- 
vc15\opencv\apps\traincascade\imagestorage.cpp, line 153

我尝试删除所有opencv xml,因为它建议在哪里,这个问题发生接缝的另一个原因是,-w 20 - h 20与图像的大小不匹配。因此我加倍检查了它。 / p>

可能导致一些问题的盲目猜测是路径&#34; C:\ build \ master_winpack-build-win64-vc15 \ opencv \ apps \ traincascade&#34;是正确的。 imagesstorage.cpp位于C:\ Users \ azach \ Downloads \ opencv \ sources \ apps \ traincascade

2 个答案:

答案 0 :(得分:0)

对于我来说,问题在于,当我在上一步中使用opencv_createsamples创建.vec文件时,我使用了与{所用的参数不同的-w-h参数{1}}。为了解决此问题,我要做的就是重做opencv_traincascadeopencv_createsamples,并保持一致的宽度和高度。

答案 1 :(得分:0)

我遇到了这个问题,因为我忘记了删除以前的级联分类器文件。