使用OpenCV进行模式识别

Ham*_*aya 9 opencv image-processing pattern-matching computer-vision

我试图检测绿色区域上的物体上的图案,由三种颜色(两侧的粉红色标记和中间的蓝色标记)组成,像交通信号灯一样排列.

起初我尝试将图像从网络摄像头转换为hsv颜色空间,并使用cvInRangeS隔离颜色,但这会产生问题,因为白天房间的光线变化我会得到误报或丢失对象的跟踪.

然后我通过修改find​​_obj.cpp尝试了SURF,问题就是opencv只能检测到我标记上的2个冲浪点,这不足以从代码中找到它至少需要4个,我试过玩冲浪障碍但是这并没有改变什么.

谷歌搜索时我遇到了这个,

http://wiki.elphel.com/index.php?title=OpenCV_Tennis_balls_recognizing_tutorial&redirect=no

这说我也可以用机器学习来挑选我感兴趣的颜色范围,但是我找不到任何关于如何做的信息.

我的问题是,OpenCV中有什么东西可以让我检测标记吗?

编辑:关于尝试haar训练的另一个问题,我的背景总是使用相同的物体标记相同的颜色相同的表面,我可以训练一个分类器说20正20负图像或我还需要成千上万的图像才能得到它认识?

mac*_*thy 5

我建议您使用颜色http://www.shervinemami.info/blobs.html查看Shervin关于斑点检测的教程

编辑

您晚上尝试使用retinex以帮助改善结果

http://www.ipol.im/pub/algo/lmps_retinex_poisson_equation/