记录一下这个项目的效果,也是2017中国机器人大赛(2017.8 山东 日照)的先进视觉项目。
视觉识别软件使用的是基础数学方法来进行图形的确定。
这里需要精确计算图形的位置和大小等数据。
规则
//圆形、正方形、长方形、椭圆形4种(ID依次为1, 2, 3, 4)
//可乐罐、口香糖、方便桶面、饼干盒4种(ID依次为81, 82, 83, 84)
//黑、红、黄、绿、蓝5种(ID依次为1, 2, 3, 4, 5)
//色块ID[2]:第一个为颜色,第二个为形状
软件界面
效果
普通USB摄像头在光线不好的地方效果是很差的,原图因为之前没存,所以就不放上来了,通过opencv调整亮度之后后如下图,在处理的过程中调整的参数都是现场调的
然后进行识别
标记种类如下图
识别方法流程
在过程中进行了过滤,外边框是矩形中检测,逆时针轮廓是通过判断中心点的位置来过滤.
具体流程在这里就不写了
颜色判断
- 判断杂色,通过传入点,向外递归11层,如果两点之间某个通道的差值大于20.说明有杂色.mix标记为1.
- 单色检测,通过RGB之间的差值来进行判断,拿到的为BGR,colorRange为40
- 黑色,(B-G)<colorRange&&(B-R)<colorRange&&(G-R)<colorRange //8.16,需要加绝对值
- 红色,(R-B)>colorRange&&(R-G)>colorRange
- 黄色,(R-B)>colorRange&&(G-B)>colorRange&&(G-R)<colorRange)
- 绿色,(G-B)>colorRange&&(G-R)>colorRange
- 蓝色,(B-G)>colorRange&&(B-R)>colorRange
- 如果上面没判出来,通过原先的范围判断.三个flag值来判断这几种颜色