OpenCV:Traincascade失败“断言失败_img.cols == winSize.width”

时间:2010-03-30 13:20:50

标签: c opencv pattern-recognition

任何人都知道OpenCV错误:断言失败_img.cols == winSize.width是什么意思?我不熟悉haar training(= traincascade)的新实现,也不能在wiki中找到任何文档。 谢谢, 约瑟夫

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

我想我找到了一些答案:

  • 可能是因为数据库太大(图像中有正面和负面的图像太多)。
  • 可能是因为正面样本差异太大,无法提取某些特征来定义对象;
  • 也可能是因为负片组可能包含场景(OpenCV生成许多负片样本的较大图像),其中包含与阳性样本非常相似的样本。

但我会选择第一个,因为如果我减少了样本数量,它就不会再被卡住了。

答案 2 :(得分:0)

拥有太大的数据库不是问题,它没有意义。那是我几天来的问题。我猜你在你的程序中使用了线程,你的线程到达svm(或者你用于火车的其他东西),然后进入探测器(用于检测关键点)。如果你看一下在断言错误中给你的路径,你就知道这些东西是相关的。我建议您使用互斥锁(或信号量)来正确管理线程,或者如果您不使用线程,请确保在训练之前进行检测。

祝你好运