从 hello world 读懂 OpenMV 怎样玩

背景介绍:
OpenMV 很人性化的一点是打开 IDE 就有个 helloworld_1.py 示例。
本篇 Sugar 就来读一读这个 helloworld_1.py 里的内含。

sensor 图像传感器模块

OpenMV 使用 MicroPython 做软件开发,sensor 就是 OpenMV 提供给 Python 的“图像传感器”模块。

总体来说 sensor 模块的使用分三步:

1、导入 sensor 模块;

2、常规初始化 sensor 模块;

3、从 sensor 读取图像帧。

从 hello world 读懂 OpenMV 怎样玩

OpenMV 的所有操作都有 Python 模块的支持,玩 OpenMV 其实就是学习 Python 语言、熟悉各个模块功能的过程。

time 时间模块

helloworld_1.py 这个例子使用了两个 Python 模块,sensortime。sensor 用于读取图像,time 用于计算帧率 fps。

从 hello world 读懂 OpenMV 怎样玩

示例给出的编程方法

仔细研究这个例子,会发现不仅仅给出了两个模块的应用,也给出了“如何用 MicroPython 对 OpenMV 编程”的方法指导:程序不是一行接一行写的,而是把各个功能模块按照“功能设计”进行逻辑组合产生的。

OpenMV 的“功能设计”也容易掌握,因为本身提供了很多成熟模块,只需做两步就可以完成功能设计:

1、了解模块功能及用法(就是搞懂 API);

2、按照实际需求把现成的功能模块进行逻辑组合。

介绍两个实用 API

1、sensor.set_vflip(enable) 用于倒置成像。

当摄像头倒置安装时,这个接口会让 OpenMV 成像是正的,如下图:

从 hello world 读懂 OpenMV 怎样玩

上图中 Sugar 实际举起的是右手,从图像上看是左手举起了,所以下面把左右调换一下。

2、sensor.set_hmirror(enable) 用于左右翻转成像。

从 hello world 读懂 OpenMV 怎样玩

3、sensor.set_transpose(enable) 图像转 90 度、270 度的方法 。

这个官方 API 里是这样写的:

从 hello world 读懂 OpenMV 怎样玩

PS

OpenMV 最好的入门办法是从 OpenMV IDE 下手,结合官方文档弄懂所有的示例,而不是去翻视频找教程。

不论读什么代码,都是要分块来读的,不要一行一行读。本文 Sugar 在截图上用流程标示了如何分块读 OpenMV 的示例代码。从前 Sugar 还分享过如何读 PX4 飞控里 uorb 通信机制的 C 语言代码,可以在后台回复 uorb 获得 Sugar 分享的 PPT 原稿。

读示例代码要弄懂示例的功能,按这个方法读几个示例之后,就试着把自己需要实现的功能拆分一下,把从示例中学到的方法用进去。这样一点一滴的积累慢慢就学会了。

关注作者

欢迎扫码关注我的公众号MultiMCU EDU
从 hello world 读懂 OpenMV 怎样玩

提示:在公众号“关于我”页面可加作者微信好友。

喜欢本文求点赞,有打赏我会更有动力。