我遇到了类似的问题,我将尝试解释我所做的事情,希望它能解决您的问题。
首先-info后面的NULL是正常的。正如 OpenCV for opencv_createcamples 的官方文档中所述,您需要输入图像(-img)或图像集合(-info),我会让您阅读文档以进一步理解,但对于这个例子,您不需要需要它。
其次,您不需要在此命令中输入绝对路径;这是我的命令:
perl bin/createsamples.pl positives.txt negatives.txt samples 1500 "opencv_createsamples -bgcolor 0 -bgthresh 0 -maxxangle 1.1 -maxyangle 1.1 -maxzangle 0.5 -maxidev 40 -w 42 -h 40"
要执行此操作,请确保位于您下载的 gitHub 目录的根目录(bin 的父目录),并确保您的 Positives.txt 和 Negatives.txt。 txt都在这个目录下。还将 OpenCV 目录中的 opencv_createsamples.exe 复制粘贴到此目录中。
完成后我现在将解释主要问题: 该项目一开始是为 Ubuntu 开发的,因此它可以轻松地在 mac 上运行,但我认为你必须在 Windows 下。如果您还没有下载 Cygwin,因为它主要使用 Linux 命令。
正如我所说,我遇到了类似的问题,所以我尝试直接使用 opencv_createsamples 而不是 perl 脚本来查看问题是否来自那里,我注意到问题出在我的 Positives.txt 和 Negatives.txt 是 Windows 格式而不是 Unix 格式,因此 Perl 脚本无法正确读取它们.
Windows 和 Linux 之间的差异很大,Cygwin 无法弥补这一差距,因此可能存在其他编码问题。所以我所做的肯定不是解决问题最快的方法,但它是一个简单的方法。
我刚刚在我的 PC 上安装了 Ubuntu 虚拟机
用TBB安装了Opencv(网上有很多教程,最好的是来自OpenCV 网站 http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html).
我下载了github分类器训练 https://github.com/mrnugget/opencv-haar-classifier-training然后我按照给出的命令进行操作,效果很好。