在stm32上实现颜色跟踪

admin 2月前 205


EasyTrace简介:

使用EasyTrace可以对单一颜色物体进行实时跟踪识别

EasyTrace特点:

1.代码只有300行,非常简单

2.识别一次只需要2至5毫秒,实时性强

3.只有1个API,使用方便

4.可配置”容错率“ ”迭代次数“等参数,可在”时间“实时性”“ ”准确度“ ”识别率“ ”误识率“ 之间寻找平衡点

使用举例

RESULT Resu;

TARGET_CONDI Condition={60,100,20,120,10,160,40,40,320,240};

Trace(&Condition,&Resu);

视频中使用的是 stm32f103vet6 和   ILI9341的液晶驱动芯片 以及 王工的OV7670带FIFO的摄像头

http://v.youku.com/v_show/id_XNDU1ODM4NzY4.html

EasyTrace.rar

2.7 KB

源码

更正一处bug:easytrace.c文件中第81行修改为s = (difVal)*240/(511 - (maxVal+minVal));

多目标跟踪演示:)

http://v.youku.com/v_show/id_XNTU4OTU3NTk2.html

http://v.youku.com/v_show/id_XNTU4OTU4NzI4.html


原理很简单:

先遍历寻找腐蚀中心,然后在腐蚀中心处进行迭代。

RBG效果不好需要转成HSL

HSL是什么

H指hue(色相)、S指saturation(饱和度)、L指lightness(亮度)。与RGB相比HSL与人类对颜色感知更接近。

腐蚀中心是什么

视频中的红点就是腐蚀中心,腐蚀算法将从该点开始分别向上下左右四个方向进行读点,若点的颜色符合条件则往外读,等四个方向都结束后得到四个边缘点的坐标,记左边缘点的x轴坐标为left,右边缘点的x轴坐标为right,上边缘点的y轴坐标为up,下边缘点的y轴坐标为bottom,那么坐标( (right-left)/2 , (up-bottom)/2 ) 即为新的腐蚀中心


上传的附件:
最新回复 [0]
返回