C++ 如何使用opencv_haartraining训练haarcascade

C++ 如何使用opencv_haartraining训练haarcascade,c++,haar-classifier,C++,Haar Classifier,我想使用opencv和HaartTraining,以便用新样本训练新的haarcascade。我创建了positives.dat和negative.dat,其中包含带有正片和负片图像的列表。下一步使用opencv_haartraining.exe训练haarcascade。然而,我对文档感到困惑。知道如何使用haartraining.exe吗?我已经创建了一个正片和负片文件列表。两个文件列表都包含文件夹,其中19x19正图像仅包含对象和19x19负图像。我想使用opencv_createsamp

我想使用opencv和HaartTraining,以便用新样本训练新的haarcascade。我创建了positives.dat和negative.dat,其中包含带有正片和负片图像的列表。下一步使用opencv_haartraining.exe训练haarcascade。然而,我对文档感到困惑。知道如何使用haartraining.exe吗?我已经创建了一个正片和负片文件列表。两个文件列表都包含文件夹,其中19x19正图像仅包含对象和19x19负图像。我想使用opencv_createsamples创建正确的文件,以便使用opencv_traincascade.exe或opencv_HaartTraining.exe训练分类器。我正在尝试按照说明进行操作:

我试图在不提供任何信息的情况下使用它们。对象包含整个图像。我得到:

Info file name: pos-samples.dat
Img file name: (NULL)
Vec file name: samples.vec
BG  file name: (NULL)
Num: 1000
BG color: 0
BG threshold: 80
Invert: FALSE
Max intensity deviation: 40
Max x angle: 1.1
Max y angle: 1.1
Max z angle: 0.5
Show samples: FALSE
Width: 19
Height: 19
Create training samples from images collection...
pos-samples.dat(1) : parse errorDone. Created 0 samples
$pos samples.dat(1):分析错误

这一行表明,您的阳性样本文件格式错误

还建议()使用opencv_traincascade代替opencv_haartraining(不推荐使用)


我已经在培训级联中使用了上面链接中提到的教程,它作为charm工作——它是openCV的官方文档,因此,您不会找到更好的教程。

opencv\u createsamples需要在每一行中使用以下格式:
imagepath\n x y width height
,因此对于您的数据类型,您必须在每一行中通过
imagepath 1 0 19
重新格式化整个文件
Info file name: pos-samples.dat
Img file name: (NULL)
Vec file name: samples.vec
BG  file name: (NULL)
Num: 1000
BG color: 0
BG threshold: 80
Invert: FALSE
Max intensity deviation: 40
Max x angle: 1.1
Max y angle: 1.1
Max z angle: 0.5
Show samples: FALSE
Width: 19
Height: 19
Create training samples from images collection...
pos-samples.dat(1) : parse errorDone. Created 0 samples