我想检测我所在国家的国旗。但我在训练方面遇到了麻烦。我有一个阳性样本和4个阴性样本。这是我的文件夹结构:
/negative
/img
img1.jpg
img2.jpg
img3.jpg
img4.jpg
/positive
flag.jpg
这就是我如何调用create_samples:
opencv_createsamples -img positive/flag.jpg -vec flag.vec
但命令并没有完成,弹出窗口显示错误出现。这是create_samples命令的输出:
Info file name: (NULL)
Img file name: positive/flag.jpg
Vec file name: flag.vec
BG file name: (NULL)
Num: 1000
BG color: 0
BG threshold: 80
Invert: FALSE
Max intensity deviation: 40
Max x angle: 1.1
Max y angle: 1.1
Max z angle: 0.5
Show samples: FALSE
Width: 24
Height: 24
Create training samples from single image applying distortions...
有人能指导我在OpenCV中完成静态图像(1个图像)的haar训练过程吗?我正在运行Windows 7 Ultimate x64
编辑
这项工作:
opencv_createsamples -img positive/flag.jpg -vec flag.vec -num 0
我想问题出在-num 0参数
Haar不是检测国旗的最佳方法,最好使用颜色检测
COLOR_MIN = np.array([20, 80, 80],np.uint8)
COLOR_MAX=np.array([40255255],np.uint8)
但如果你仍然坚持哈尔
创建示例:
$ <opencv_createsamples> -vec <binary_description> -image <positive_image> -bg <negative_description>
训练级联:
$ <opencv_traincascade> -data <cascade> -vec <binary_description> -bg <negative_description>