摄像头应用
摄像头是整个机器视觉应用的基础,我们先来看看210K的怎么用。(新手先用官方,然后争取自己写)
实验目的:
学习官方自带的例程,理解 K210 摄像头基本编程和配置原理。
实验讲解:
摄像头接线方式:
pyAI-K210 集成了 24P 摄像头接口,可以直接连接标准 OV2640 等 24P 摄像头模块,排线接线方式均为下接(排线金手指朝下),具体如下:
实验讲解:
由于摄像头的排针均没有电气连接,所以可以根据自己需要任意摆放位置(PS:自由的感觉)
在 IDE 中打开 零一科技\02-示例程序\5.pyAI-K210\2.机器视觉\1.摄像头应用 目录下的 Camera.py 文件。(如果找不到之前安装的IDE,可以在开始中搜一下)
打开后发现编辑框出现了相关代码,我们可以先直接跑一下代码看看实验现象,连接 pyAI-K210,点击运行,可以发右图上方出现了摄像头实时采集的图像。下方则显示 RGB 颜色直方图。串行终端显示FPS
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小伙伴们的摄像头能工作了吗
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)