我想检测一下我国的国旗。但我在训练方面遇到了麻烦。我有一个阳性样本和4个阴性样本。这是我的文件夹structrue:
/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 参数
答案 0 :(得分:0)
Haar不是你检测国家旗帜的最好机会,更好地使用颜色检测
COLOR_MIN = np.array([20, 80, 80],np.uint8)
COLOR_MAX = np.array([40,255,255],np.uint8)
但如果你仍然坚持哈尔
创建样本:
$ <opencv_createsamples> -vec <binary_description> -image <positive_image> -bg <negative_description>
训练级联:
$ <opencv_traincascade> -data <cascade> -vec <binary_description> -bg <negative_description>