当前位置:   article > 正文

OpenMV入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

openmv

1. 什么是OpenMV

OpenMV 是一个开源,低成本,功能强大的 机器视觉模块。

OpenMV上的机器视觉算法包括 寻找色块、人脸检测、眼球跟踪、边缘检测、标志跟踪 等。

以STM32F427CPU为核心,集成了OV7725摄像头芯片,在小巧的硬件模块上,用C语言高效地实现了核心机器视觉算法,提供Python编程接口。

(这也就意味着,我们可以通过python来对他进行编程,所以我们就需要学习一点基础的python知识)

————————————————

2. 关于OpenMV 和 OpenCV

OpenMV是 开源的机器视觉框架,而 OpenMV 是一种 开源计算机视觉库,两者都是实现视觉应用的工具,不同的是 OpenMV 可以运行在 MCU 上,而OpenCV可以运行在多种框架的 CPU上,OpenMV的优势在于轻量化,但是处理高复杂图形信息和告诉图像能力的时候明显弱于OpenCV

————————————————

3. OpenMV的教程

序言 · OpenMV中文入门教程

以上链接为 星瞳官方 所给我们的上手教程,我们接下来的内容也是对视频内容的笔记

Home - 廖雪峰的官方网站

以上链接为 Python 语法的学习网址,适合对其他语言有一些基础的同学

————————————————

4. OpenMV IDE 界面介绍

上面是我们下载完 IDE 后进入的界面

中间的这一块是我们的代码编辑框,我们可以在这里写代码

右上角是 Frame Buffer,可以用来查看OpenMV的摄像头的头像

右下方是 图像的直方图,可以查看图像不同的颜色阈值

当我们连接OpenMV后,点击连接,就可以看到 图像显示出来了

左上角的菜单栏 File

在下面了 示例 里面,有一些官方给的历程

————————————

控制一些 基本的外设

————————————————

画图,画十字,画线,画框

————————————————

与图像相关的滤波

————————————————

图像的截图保存等

————————————————

录制视频等

————————————————

人脸识别,人脸追踪

————————————————

这里面有一些特征点匹配:

直线线段 ,圆识别, 边缘检测,模板匹配等等

————————————————

瞳孔识别,人眼识别

————————————————

与颜色识别有关: 自动灰度颜色识别 ,自动彩图颜色识别,红外颜色识别 等等

————————————————

运行LCD程序,当我们外接LCD显示屏的时候使用

————————————————

红外热成像的一个例程

____________________________

蓝牙 , WIFI ,舵机拓展板 例程

——————————————

条码,二维码相关的扫描识别

____________________________________________________

然后 Edit 里面,就是我们最经常使用的复制 黏贴等

———————————————————————————

5. 基础程序的讲解

# Hello World Example
#
# Welcome to the OpenMV IDE! Click on the green run arrow button below to run the script!

import sensor, image, 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.


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

上面这段代码,也就是我们刚进入 IDE 时,直接给我们的,我们对他先来进行分析

· 首先 import 是导入此代码所依赖的模块,在 hellow world 这个代码中主要依赖

sensor 感光元件模块
image 图像处理相关模块
time 时钟
sensor.reset()    重置感光元件
RGB565 彩图
sensor.set_pixformat(sensor.RGB565) 设置感光元件的图像的色彩
sensor.set_framesize(sensor.QVGA) 设置感光元件的分辨率的大小
sensor.skip_frames(time = 2000) 使图像跳过几帧
clock = time.clock()  设置时钟

我们进入一个while大循环,在这里 image 在不断的截图保存图像,而截取的图像我们就可以在右上角看到

最后一句 也就是打印的帧率,我们可以在下面的框Terminal看到

——————————————————————————————————

5. 如何进行OpenMV的脱机运行程序

而我们想把我们的代码在我们不连接电脑的时候使用,我们就需要用到脱机运行

把代码保存的 OpenMV内置的 flash 内存 里面(也就是OpenMV连接电脑时,弹出的U盘,我们把文件保存在那里面,我们在那里面存储代码或图片)

我们使用 工具 里的 一键下载

当写入成功时,我们的灯会亮一下,就代表脱机完成,脱机成功后,我们给OpenMV重新上电(也就是重新启动一下),就可以自动运行里面的代码。我们也可以在 OpenMV的U盘里面看到我们刚刚保存的代码

OpenMV保存的 时候 会把我们的代码默认保存为 main.py,我们也可以在保存之后重新保存为其他的名称 .py

但需要注意的是,我们上电之后,他会自动执行我们 main.py的程序,而不是其他的程序

关于我们如何查看是否正确保存了我们的代码,我们可以将示例代码中闪灯的代码,作为测试,保存到我们的 main.py 里面,然后上电之后看看有没正确闪灯即可

如果我们发现,有时候并没有正确的把代码保存进去,我们就可以把U盘格式化一下,再重新保存

——————————————————————————————————

6. 颜色识别

前面我们知道,OpenMV里面有很多的颜色识别,我们就来看一下 单颜色彩色识别

# Single Color RGB565 Blob Tracking Example
#
# This example shows off single color RGB565 tracking using the OpenMV Cam.

import sensor, image, time, math

threshold_index = 0 # 0 for red, 1 for green, 2 for blue

# Color Tracking Thresholds (L Min, L Max, A Min, A Max, B Min, B Max)
# The below thresholds track in general red/green/blue things. You may wish to tune them...
thresholds = [(30, 100, 15, 127, 15, 127), # generic_red_thresholds
              (30, 100, -64, -8, -32, 32), # generic_green_thresholds
              (0, 30, 0, 64, -128, 0)] # generic_blue_thresholds

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/1012945
推荐阅读
  

闽ICP备14008679号