OpenCV错误:断言失败(\u img.cols==winSize.width)

OpenCV错误:断言失败(\u img.cols==winSize.width),opencv,centos,Opencv,Centos,所以我一直在试着运行这个命令 opencv_traincascade -data HandsData -vec hands.vec -bg HandsNeg.txt -numPos 3641 -numNeg 2578 -numStages 20 -w 27 -h 48 -mode ALL -minHitRate 0.999 -maxFalseAlarmRate 0.5 -precalcValBufSize 1024 -precalcIdxBufSize 1024 我得到了错误 ===== TR

所以我一直在试着运行这个命令

opencv_traincascade -data HandsData -vec hands.vec -bg HandsNeg.txt -numPos 3641 -numNeg 2578 -numStages 20 -w 27 -h 48 -mode ALL -minHitRate 0.999 -maxFalseAlarmRate 0.5 -precalcValBufSize 1024 -precalcIdxBufSize 1024
我得到了错误

===== TRAINING 0-stage =====
<BEGIN
POS count : consumed   3641 : 3641
OpenCV Error: Assertion failed (_img.cols == winSize.width) in get, file /builddir/build/BUILD/OpenCV-2.0.0/apps/traincascade/imagestorage.cpp, line 86
terminate called after throwing an instance of 'cv::Exception'
Aborted
什么也没找到

我完全不知道该怎么办

其他信息:我采取了哪些步骤来达到这一点

我用ffmpeg创建了一些视频中的所有内容。这些是从电话和VLC列出的信息

Resolution: 1920x1090
Display resolution: 1920x1080
ffmpeg命令将输入/输出替换为相应的视频和位置

steven ~/computer_vision $ ffmpeg -i videos/Not\ hands\ stuff.mp4 -y -r 40 -s 27x48 -f image2 NotHandsorFists/Negs-%4d.png
Hands.txt中的文件格式如下

steven ~/computer_vision $ cat Hands.txt | head -n 1
Hands/LeftHand-0001.png 1 0 0 27 48
我使用

steven ~/computer_vision $ opencv_createsamples -info Hands.txt -num 3641 -w 27 -h 48 -vec hands.vec
负片文件的格式为

steven ~/computer_vision $ cat HandsNeg.txt | head -n 1
Fists/LeftFist-0001.png
工作目录是

steven ~/computer_vision $ ls
Fists  fists.txt  Hands  HandsData  HandsNeg.txt  Hands.txt  hands.vec  NotHandsorFists  NotHandsorFists.txt  videos
编辑:
我试着把png改成jpg和bmp来摆脱这些频道。没有帮助。

你能上传LeftHand-0001.png吗?我已经使用了超过4k的图像,没有问题。无论如何,断言CV_Assert_img.cols==winSize.width;是内部函数bool cvcascade imagereader::NegReader::get Mat&\u img,用于负片图像。您的负片有问题,行POS计数:消耗3641:3641意味着我已成功完成所有正片的工作。尽管很难理解问题所在,但我想我可以帮助您,因为我非常了解源代码,我已经对其进行了多次修改。看看它,如果一个负片图像小于windows大小,它似乎不会崩溃。此外,文档还说:“每个图像都应该比训练窗口大,但不一定比训练窗口大”。这里他们说这是opencv旧版本的一个bug。您检查过这个吗?如果您使用的是框架的新版本,请尝试修改文件imagestorage.cpp,添加以下行cout
steven ~/computer_vision $ ls
Fists  fists.txt  Hands  HandsData  HandsNeg.txt  Hands.txt  hands.vec  NotHandsorFists  NotHandsorFists.txt  videos