当前位置:   article > 正文

基于MaixPy的摄像头模块---MicroPython图像处理_esp32cam图像处理

esp32cam图像处理

1. 什么是 MaixPy

MaixPy 是将 Micropython 移植到 K210( 一款64位双核带硬件FPU和卷积加速器的 RISC-V CPU, ) 的一个项目, 支持 MCU 常规操作, 更集成了机器视觉和麦克风阵列, 以快速开发具有极低成本和体积实用的 AIOT 领域智能应用。

MicroPython 是基于 Python3 的语法做的一款解析器,包含了 Python3 的大多数基础语法, 主要运行在性能和内存有限的嵌入式芯片上。(注意 Micropython 不包含 Python3 的所有语法)

K210 在硬件上集成了机器视觉和机器听觉能力, 是一款定位 AI 和 AIOT 市场的SoC,同时也是一颗方便的MCU, 性能强劲的同时却有着极低的价格。

Micropython 让我们在 K210 上编程更加简单快捷, 我们也将源代码开源在 github 上。

比如我们需要寻找I2C总线上的设备,只需要使用如下代码即可实现:

  1. from machine import I2C
  2. i2c = I2C(I2C.I2C0, freq=100000, scl=28, sda=29)
  3. devices = i2c.scan()
  4. print(devices)

同样,我们需要实现一个呼吸灯,只需要如下代码:

  1. from machine import Timer,PWM
  2. import time
  3. tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PWM)
  4. ch = PWM(tim, freq=500000, duty=50, pin=board_info.LED_G)
  5. duty=0
  6. dir = True
  7. while True:
  8. if dir:
  9. duty += 10
  10. else:
  11. duty -= 10
  12. if duty>100:
  13. duty = 100
  14. dir = False
  15. elif duty<0:
  16. duty = 0
  17. dir = True
  18. time.sleep(0.05)
  19. ch.duty(duty)

实时拍照

  1. import sensor
  2. import image
  3. import lcd
  4. lcd.init()
  5. sensor.reset()
  6. sensor.set_pixformat(sensor.RGB565)
  7. sensor.set_framesize(sensor.QVGA)
  8. sensor.run(1)
  9. while True:
  10. img=sensor.snapshot()
  11. lcd.display(img)

2.  Maix Camera能做哪些事

大多数是在 MaixPy 上已经有 API, 部分可能来自 Maixduino 或者其它开发者~

  • 人脸检测
  • MobileNet 物体识别
  • tiny yolov2 20分类
  • 识别颜色值、找形状、找直线、面部识别等
  • MNIST 手写数字识别
  • Feature map 显示
  • 视频播放和录制
  • NES 游戏模拟器 (FC 红白机)
  • GBA 游戏模拟器
  • 游戏 Quake I
  • 游戏 Doom
  • MMD 3D 实时渲染
  • GUI 界面 littlevGL
  • 云台脸部跟踪
  • 麦克风阵列
  • FFT 频谱图

3.  移植了OpenMV的机器视觉库

支持单目摄像头和双目摄像头,传感器模块,进行摄像头配置及图像抓取等,用于控制开发板摄像头完成摄像任务。

DIY相关的项目制作,比如追踪小球的车,云台,或者解魔方的机器人。

对成本要求很高的嵌入式工业方案,比如流水线物品的分拣。

视频录制、视频播放、音频录制、音频播放、人脸识别、人眼追踪、特征检测等等,大量的图像处理功能

4.最简单的摄像头图像例程

例程说明:实时采集并显示图像在TFT屏上,并获取和显示实时帧数

  1. import sensor
  2. import image
  3. import lcd
  4. import time
  5. clock = time.clock()
  6. lcd.init()
  7. sensor.reset()
  8. sensor.set_pixformat(sensor.RGB565)
  9. sensor.set_framesize(sensor.QVGA)
  10. sensor.run(1)
  11. sensor.skip_frames(30)
  12. while True:
  13. clock.tick()
  14. img = sensor.snapshot()
  15. fps =clock.fps()
  16. img.draw_string(40,2, ("%2.1ffps" %(fps)), color=(128,0,0), scale=2)
  17. lcd.display(img)

5.MaixCAM摄像头模块

 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号