口袋中的人工智能 --- 嵌入式AI编程实践系列笔记2 .颜色跟

2020-05-16  本文已影响0人  gaoshine

口袋中的人工智能 --- 嵌入式AI编程实践系列笔记2 颜色跟踪

0.背景

今天继续探索使用K210芯片的开发板做开发.
有关K210和开发板参见我的上一篇文章 口袋中的人工智能 --- 嵌入式AI编程实践系列笔记1

这2款开发板,都可以使用MaixPy编程,其实真的很容易上手. MaixPy其实就是整合了 micropython和openmv的开发语言.如果熟悉python和opencv的,可以很小的代价转移到嵌入式设备的开发. micropython是python针对迁入设备的一个子集,而openmv是对opencv做了简化后的一个嵌入式的库. 具体可以参照MAIXP的手册,应该是写的很详细了.
(https://maixpy.sipeed.com/zh/

本次简单介绍一下这几个对象:

  1. 摄像头 sensor
    传感器模块,进行摄像头配置及图像抓取等,用于控制开发板摄像头完成摄像任务。
    重置并初始化单目摄像头 sensor.reset([freq=24000000, set_regs=True, dual_buff=False])
    MaixPy开发板配置的屏幕是320*240分辨率,推荐设置为QVGA格式

  2. 机器视觉图像 image
    移植于 openmv, 与 openmv 功能相同.

  3. 屏幕 lcd
    lcd 屏幕显示驱动
    初始化 LCD 屏幕显示

1.代码

非常简单,使用过opencv的看起来就太简单啦
首先,初始化屏幕 lcd.init (maix dock一般都是320*240)
然后,初始化摄像头 sensor.reset
定义绿色的阙值 (0, 80, -70, -10, -0, 30)
最后使用 image的图块查找颜色阙值为绿色的 img.find_blobs,遍历查找结果

import sensor
import image
import lcd
import time

lcd.init(freq=15000000)
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
green_threshold   = (0,   80,  -70,   -10,   -0,   30)
while True:
    img=sensor.snapshot()
    blobs = img.find_blobs([green_threshold])
    if blobs:    
        for b in blobs:
            tmp=img.draw_rectangle(b[0:4]) 
            tmp=img.draw_cross(b[5], b[6]) 
            c=img.get_pixel(b[5], b[6])
    lcd.display(img)

2.效果

在宾馆里,因陋就简,就拿绿色的方便面料包测试了.

Gif-2020-41-16-23-41-52.gif
上一篇 下一篇

猜你喜欢

热点阅读