linux - Opencv_createsamples 因段错误而失败

标签 linux opencv image-recognition training-data haar-classifier

我目前正在尝试制作 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/

相关文章:

opencv - 在 ubuntu 12.04 上安装 opencv4 tegra

c++ - 在opencv中从HSV中查找颜色

swift - Swift中使用Arkit识别图片时如何播放本地视频?

linux - 在 ubuntu 18.04 中使用终端安装 vscode .deb 包

linux - awk one liner 根据一列的值只选择行

java - Linux环境下使用Java中的Runtime.getRuntime().exec执行命令时出现内存泄漏问题

c++ - vs 2012 的 opencv 3.0 链接器问题

c++ - 在这种情况下,如何在编译时从文本文件中读取数据?

java - 如何使用 Java 在图像中搜索特定图像/ Logo /标志等?

c# - 如何与 .net 中的另一个项目链接