从 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 读取图像帧。
OpenMV 的所有操作都有 Python 模块的支持,玩 OpenMV 其实就是学习 Python 语言、熟悉各个模块功能的过程。
time
时间模块
helloworld_1.py
这个例子使用了两个 Python 模块,sensor
和 time
。sensor 用于读取图像,time 用于计算帧率 fps。
示例给出的编程方法
仔细研究这个例子,会发现不仅仅给出了两个模块的应用,也给出了“如何用 MicroPython 对 OpenMV 编程”的方法指导:程序不是一行接一行写的,而是把各个功能模块按照“功能设计”进行逻辑组合产生的。
OpenMV 的“功能设计”也容易掌握,因为本身提供了很多成熟模块,只需做两步就可以完成功能设计:
1、了解模块功能及用法(就是搞懂 API);
2、按照实际需求把现成的功能模块进行逻辑组合。
介绍两个实用 API
1、sensor.set_vflip(enable)
用于倒置成像。
当摄像头倒置安装时,这个接口会让 OpenMV 成像是正的,如下图:
上图中 Sugar 实际举起的是右手,从图像上看是左手举起了,所以下面把左右调换一下。
2、sensor.set_hmirror(enable)
用于左右翻转成像。
3、sensor.set_transpose(enable)
图像转 90 度、270 度的方法 。
这个官方 API 里是这样写的:
PS
OpenMV 最好的入门办法是从 OpenMV IDE 下手,结合官方文档弄懂所有的示例,而不是去翻视频找教程。
不论读什么代码,都是要分块来读的,不要一行一行读。本文 Sugar 在截图上用流程标示了如何分块读 OpenMV 的示例代码。从前 Sugar 还分享过如何读 PX4 飞控里 uorb
通信机制的 C 语言代码,可以在后台回复 uorb
获得 Sugar 分享的 PPT 原稿。
读示例代码要弄懂示例的功能,按这个方法读几个示例之后,就试着把自己需要实现的功能拆分一下,把从示例中学到的方法用进去。这样一点一滴的积累慢慢就学会了。
关注作者
欢迎扫码关注我的公众号MultiMCU EDU
。