OpenMV学习笔记1——IDE安装与起步

目录

[一、OpenMV IDE下载](#一、OpenMV IDE下载)

二、OpenMV界面

[三、Hello World!](#三、Hello World!)

四、将代码烧录到OpenMV实现脱机运行

五、插SD卡(为什么买的时候没送?)


一、OpenMV IDE下载

浏览器搜索OpenMV官网,进入后点击"立即下载",即可下载OpenMV的IDE。因为我这里是使用Windows开发,所以下载与Windows匹配的版本。

下载好后一路点击安装,什么都不需要管。在最后会提示是否安装XXX,一路点"是"就可以。安装好后会自动运行OpenMV的IDE。

二、OpenMV界面

左边最大的是代码编写框,需要在这里写代码。

右上角写着"没有图像"的是OpenMV的Frame Buffer窗口,可以通过它来获知当前摄像头捕获到了什么,不过现在我们没有链接摄像头,所以什么都不显示。

它的下方是直方图,可以显示不同颜色的阈值,点击该窗口右上方的下拉三角即可切换不同的数据,包括RGB、灰度、LAB、YUV四种。

用USB数据线将OpenMV与电脑进行链接,点击IDE中左下角的链接和运行按钮,即可看到右边两个窗口有了显示数据。

三、Hello World!

python 复制代码
# Hello World Example
#
# Welcome to the OpenMV IDE! Click on the green run arrow button below to run the script!

import sensor
import time

sensor.reset()  # Reset and initialize the sensor.
sensor.set_pixformat(sensor.RGB565)  # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA)  # Set frame size to QVGA (320x240)
sensor.skip_frames(time=2000)  # Wait for settings take effect.
clock = time.clock()  # Create a clock object to track the FPS.

while True:
    clock.tick()  # Update the FPS clock.
    img = sensor.snapshot()  # Take a picture and return the image.
    print(clock.fps())  # Note: OpenMV Cam runs about half as fast when connected
    # to the IDE. The FPS should increase once disconnected.

在代码中,将鼠标移至任意函数或库处停留一段时间,即可查看光标停留位置指向函数或库的部分信息。

新打开的IDE代码区自带了一段代码,第五及第六行是import语句,用于导入本程序需要使用的库。这个程序中导入了"sensor"及"time"两个库。

**sensor.reset()**用作初始化,初始化OpenMV的感光元件。

**sensor.set_pixformat()**设置像素模式,需要一个参数,可选项如下:

  • sensor.GRAYSCALE: 灰度,每个像素8bit。
  • sensor.RGB565: 彩色,每个像素16bit。

**sensor.set_framesize()**设置图像的大小,需要一个参数,可选项如下(转载自官方中文文档):

  • sensor.QQCIF: 88x72
  • sensor.QCIF: 176x144
  • sensor.CIF: 352x288
  • sensor.QQSIF: 88x60
  • sensor.QSIF: 176x120
  • sensor.SIF: 352x240
  • sensor.QQQQVGA: 40x30
  • sensor.QQQVGA: 80x60
  • sensor.QQVGA: 160x120
  • sensor.QVGA: 320x240
  • sensor.VGA: 640x480
  • sensor.HQQQVGA: 80x40
  • sensor.HQQVGA: 160x80
  • sensor.HQVGA: 240x160
  • sensor.B64X32: 64x32 (用于帧差异 image.find_displacement())
  • sensor.B64X64: 64x64 用于帧差异 image.find_displacement())
  • sensor.B128X64: 128x64 (用于帧差异 image.find_displacement())
  • sensor.B128X128: 128x128 (用于帧差异 image.find_displacement())
  • sensor.LCD: 128x160 (用于LCD扩展板)
  • sensor.QQVGA2: 128x160 (用于LCD扩展板)
  • sensor.WVGA: 720x480 (用于 MT9V034)
  • sensor.WVGA2:752x480 (用于 MT9V034)
  • sensor.SVGA: 800x600 (仅用于 OV5640 感光元件)
  • sensor.XGA: 1024x768 (仅用于 OV5640 感光元件)
  • sensor.SXGA: 1280x1024 (仅用于 OV5640 感光元件)
  • sensor.UXGA: 1600x1200 (仅用于 OV5640 感光元件)
  • sensor.HD: 1280x720 (仅用于 OV5640 感光元件)
  • sensor.FHD: 1920x1080 (仅用于 OV5640 感光元件)
  • sensor.QHD: 2560x1440 (仅用于 OV5640 感光元件)
  • sensor.QXGA: 2048x1536 (仅用于 OV5640 感光元件)
  • sensor.WQXGA: 2560x1600 (仅用于 OV5640 感光元件)
  • sensor.WQXGA2: 2592x1944 (仅用于 OV5640 感光元件)

这里样例代码设置了"sensor.QVGA",即设置图像大小为320×240。

**sensor.skip_frames(n=10)**跳过一些帧,跳过n张照片,在更改设置后,跳过一些帧,等待感光元件变稳定。样例代码设置为2000。

**clock = time.clock()**开启一个时钟。

之后,我们进入一个while的大循环里。在这个循环里,我们使用**sensor.snapshot()**拍摄一张照片,返回一个image对象,并使其显示在右侧栏当中。

最后一句是打印帧率,我们可以在代码区下方打开串行终端查看不断显示的帧率。

注意:这里显示的只是传输图像的帧率,如果我们在帧缓冲区右上角点击禁用,即不再想电脑传输图片,此时再次连接OpenMV,可以看到帧率有一波猛涨。

OpenMV的镜头是可以调整对焦的,只需要将镜头下方的锁焦环拧松,然后调整摄像头位置即可,一般最清晰的位置在底部偏上一些。调整好之后把镜头与锁焦环拧紧即可。

四、将代码烧录到OpenMV实现脱机运行

有时候我们想让OpenMV在不连接电脑的情况下也可以自己运行写好的代码,此时需要打开上方工具栏的"将打开的脚本保存到OpenMV CAM(作为main.py)选项。选择之后可以看到OpenMV亮了红灯,一会后熄灭,证明程序下载完成。
因为我这里之前点过一次,所以现在已经全变灰了

打开我的电脑可以看到,有一个新的U盘,这个就是OpenMV的Flash空间,打开后可以看到main.py,此时就是我们下载进去的程序。下载好之后,即使我们不连接电脑而是给它独立供电,也可以运行写好的程序。

五、插SD卡("为什么买的时候没送?")

如果觉得OpenMV自带的Flash空间太小,我们可以在背部找到一个卡槽用来装储存卡,最大支持32GB。插好卡之后再打开"我的电脑",可以看到OpenMV的Flash被SD卡代替,存储空间已经变大了。

相关推荐
懒大王爱吃狼22 分钟前
Python教程:python枚举类定义和使用
开发语言·前端·javascript·python·python基础·python编程·python书籍
劲夫学编程23 分钟前
leetcode:杨辉三角
算法·leetcode·职场和发展
毕竟秋山澪25 分钟前
孤岛的总面积(Dfs C#
算法·深度优先
努力变厉害的小超超1 小时前
ArkTS中的组件基础、状态管理、样式处理、class语法以及界面渲染
笔记·鸿蒙
秃头佛爷1 小时前
Python学习大纲总结及注意事项
开发语言·python·学习
浮生如梦_2 小时前
Halcon基于laws纹理特征的SVM分类
图像处理·人工智能·算法·支持向量机·计算机视觉·分类·视觉检测
深度学习lover2 小时前
<项目代码>YOLOv8 苹果腐烂识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·苹果腐烂识别
dayouziei3 小时前
java的类加载机制的学习
java·学习
API快乐传递者3 小时前
淘宝反爬虫机制的主要手段有哪些?
爬虫·python
励志成为嵌入式工程师4 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim