查看原文
其他

openmv学习2-寻找色块并打印出坐标

西安-小马哥 电子开发学习 2021-01-31

openmv可以帮助我们快速实现一些功能,例如寻找色块并实现寻迹等。


本例快速完成一个色块寻找的目标。


其中涉及到如下知识点。



1、首先我确定我要寻找的是一个大枣(十一放假回家家里大枣比较多,顺手取材)。在打开openmv IDE之后,连接设备,就可以看到摄像头捕获的内容了,是一面白色的墙:



2、随手我就拿起一颗枣扔进嘴里,不对,是放在摄像头前面:


3、然后在图像中的枣上鼠标左键框选一下,就可以看到下面的颜色曲线变化了,点击下图倒三角选中LAB Color Space。

4、接着记住下面曲线中的三个起始位置和结束位置的数字:

分别是:30,68,10,30,-20,0,这是一个大概值,具体我们通过一个工具来确定这个范围。那就有人要问了,这是在做什么?这其实是在确定这个枣的颜色范围,只有先把这个值确定下来,后续openmv才能在一个图像中获取这个颜色范围的相关信息(如坐标、数量等信息)。


5、点击OPENMV IDE菜单栏“工具”,鼠标放置在下拉菜单中的“Machine Vision”上,右侧就会弹出一个菜单栏,然后选中“Threshold Editor”,就会弹出如下对话框:

这是在询问你,是从当前摄像机的缓存中来取图编辑还是使用照片文件来编辑。我们直接选中“Frame Buffer”。


6、接下来会弹出如下界面:

我们的目的是让上图中红色框里的枣的颜色被选中作为样本。所以就下拉下面的六个滑钮,让这个枣在上图右侧变成白色,其他区域变成黑色,如下图:

然后上图中红色框里面的数字就是我们得到的这个枣的颜色阈值。也就是我说的颜色样本。鼠标点在这个数字上并按键盘的CTRL+A全选,然后CTRL+C复制。关闭窗口。


7、在代码区域加入如下代码:

然后重新运行程序,打开终端,发现:当摄像头区间没有枣的时候,终端不打印,当拿一个枣在摄像头前面晃的时候,终端会打印出整个枣的坐标:


这也就意味着,我们成功的通过摄像头获取了大枣的位置,那如果把大枣换成小球,结果也是一样的。这就意味着今年(17年)全国大学生电子大赛的球板题,可以通过openmv+三句代码实现小球定位。


ps:为了截图写完这个笔记,我已经吃了很多大枣了。


新版四轴10月底开始众筹,感兴趣的可以加群关注:260909804

这版四轴将会添加很多新的功能(具体暂不透露)。


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存