咸鱼K210体验笔记—摄像头应用

  • 摄像头应用


写在前面:本人非专业人员,仅为此类爱好者。分享一下新手在体验K210的过程。入门踩坑(各种跳坑),希望大佬帮忙填上一二~。(所选设备都是K210。都想体验一下。欢迎大佬指点。)因为之前有些硬件使用基础所以K210只使用视觉相关功能。

摄像头应用

摄像头是整个机器视觉应用的基础,我们先来看看210K的怎么用。(新手先用官方,然后争取自己写)
实验目的:

学习官方自带的例程,理解 K210 摄像头基本编程和配置原理。

实验讲解:
摄像头接线方式:

pyAI-K210 集成了 24P 摄像头接口,可以直接连接标准 OV2640 等 24P 摄像头模块,排线接线方式均为下接(排线金手指朝下),具体如下:

闲鱼 监控 接口_闲鱼 监控 接口


实验讲解:

由于摄像头的排针均没有电气连接,所以可以根据自己需要任意摆放位置(PS:自由的感觉)

闲鱼 监控 接口_人工智能_02

在 IDE 中打开 零一科技\02-示例程序\5.pyAI-K210\2.机器视觉\1.摄像头应用 目录下的 Camera.py 文件。(如果找不到之前安装的IDE,可以在开始中搜一下)

闲鱼 监控 接口_初始化_03


闲鱼 监控 接口_python_04


打开后发现编辑框出现了相关代码,我们可以先直接跑一下代码看看实验现象,连接 pyAI-K210,点击运行,可以发

右图上方出现了摄像头实时采集的图像

下方则显示 RGB 颜色直方图

串行终端显示FPS

闲鱼 监控 接口_初始化_05

MaixPy 机器视觉库代码大部分都是参考 OpenMV 移植过来,其已经将所有的摄像头功能封装到 sersor模块中,用户可以通过调用轻松使用。(用到哪个模块介绍哪个。写多了也不会去看/doge)

构造函数
sensor:
传感器模块,进行摄像头配置及图像抓取等,用于控制开发板摄像头完成摄像任务。直接使用import调用即可

import sensor

使用方法

方法

说明

sensor.reset()

初始化摄像头

sensor.set_pixformat(pixformat)

设置像素格式。pixformat 有 3 个参数。

sensor.GRAYSCAL

灰度图像,每像素 8 位(1 字节),处理速度快;

sensor.RGB565

每像素为 16 位(2 字节),5 位用于红色,6 位用于绿色,5 位用于蓝色,处理速度比灰度图像要慢。

sensor.snapshot()

使用相机拍摄一张照片,并返回 image 对象

sensor.set_framesize(framesize)

设置每帧大小(即图像尺寸)。

常用的 framesize 参数有下面这些:

sensor.QQVGA: 160*120;
sensor.QVGA: 320*240;
sensor.VGA: 640*480;
sensor.skip_frames([n, time])
摄像头配置后跳过 n 帧或者等待时间 time 让其变稳定。n:跳过帧数;time:等待 时间,单位 ms。 (如果 n 和 time 均没指定,则默认跳过 300 毫秒的帧。)

clock:
用于计算 FPS(每秒帧数)的模块。import调用time模块

import time

使用方法

方法

说明

clock.reset()

重置时钟对象。

clock=time.clock()

创建一个时钟。

clock.tick()

开始追踪运行时间。

clock.avg()

停止跟踪运行时间,并返回以毫秒为单位的当前平均运行时间。在调用此函数之前,始终先调用 tick。

clock.fps ()

停止追踪运行时间,并返回当前 FPS(每秒帧数)。在调用该函数前始终首先调用 tick

我们来看看Camera.py 代码的编写流程及说明:

# Camera.py 编写流程
#导入sensor,time模块
#初始化sensor模块
#创建1个计时时钟
#循环拍摄图片并打印FPS(每秒帧数)


import sensor, image, time, lcd

lcd.init(freq=15000000)             #初始化LCD
sensor.reset()                      #复位和初始化摄像头,执行sensor.run(0)停止。
#sensor.set_vflip(1)                 #将摄像头设置成后置方式(所见即所得)


sensor.set_pixformat(sensor.RGB565) # 设置像素格式为彩色 RGB565 (或灰色)
sensor.set_framesize(sensor.QVGA)   # 设置帧大小为 QVGA (320x240)
sensor.skip_frames(time = 2000)     # 等待设置生效.
clock = time.clock()                # 创建一个时钟来追踪 FPS(每秒拍摄帧数)

while(True):
    clock.tick()                    # 更新 FPS 时钟.
    img = sensor.snapshot()         # 拍摄一个图片并保存.
    lcd.display(img)                # 在LCD上显示
    print(clock.fps())              # 注意: 当 K210 连接到 IDE 时候,运行速度减
                                    #半,因此当断开 IDE 时 FPS 会提升。

OK小伙伴们的摄像头能工作了吗?我们要接LED屏幕了~~!