我目前正在尝试制作 HAAR 分类器。我制作了一个注释文件并按照官方 openCV 教程中的描述完成了所有操作:https://docs.opencv.org/3.3.0/dc/d88/tutorial_traincascade.html . 但是,当我尝试使用 opencv_createsamples 创建示例时,出现错误。我的命令:
opencv_createsamples -vec/some_dirs/samples/samples.vec -info/some_dirs/annotations/annotations.dat -w 8 -h 8 -num 100
错误:
信息文件名:/home/nikifaets/code/pointsProcessing/annotations/annotations.dat
img 文件名: (NULL)
Vec文件名:/home/nikifaets/code/pointsProcessing/samples/samples.vec
BG文件名:(NULL)
数量:100
背景色:0
BG阈值:80
反转:假
最大强度偏差:40
最大 x 角度:1.1
最大 y 角度:1.1
最大 z 角:0.5
显示示例:错误
宽度:8
高度:8
最大规模:-1
RNG 种子:12345
从图像集合创建训练样本...
OpenCV 错误:调整大小断言失败(ssize.width > 0 && ssize.height > 0),文件/build/opencv/src/opencv-3.4.0/modules/imgproc/src/resize.cpp,第 4044 行
在抛出“cv::Exception”实例后调用终止
what():/build/opencv/src/opencv-3.4.0/modules/imgproc/src/resize.cpp:4044: 错误: (-215) ssize.width > 0 && ssize.height > 0 in function resize
中止(核心转储)
但是,如果我尝试只做两个样本(不知道为什么正好是 2...),它会运行并创建 .vec 文件,尽管我的数据集包含大约 300-400 张图片。
annotations.dat 的 Pastebin
在此先感谢您的支持!
最佳答案
解决了!感谢 Micka 提出解决方案并且是正确的。注释文件中有错误。兴趣点的描述之一是 0 0 0 0,这是无效的。始终仔细检查您的文件!
关于linux - Opencv_createsamples 因段错误而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49141708/