摄像头在安防监控和图像识别等领域被广泛应用。本文介绍如何通过EsDA开发套件,快速实现摄像头图像采集。
简介
近些年,随着生物识别技术的日益成熟,以及安防监控在公共安全领域的广泛应用,而这些应用领域都离不开摄像头的支持。但是,摄像头的应用框架往往都比较复杂,对使用者有一定的要求。
本文使用M6G2C核心板,简单介绍如何基于EsDA设计的camera摄像头功能节点,快速实现图像采集。 前期准备
若是刚开始接触EsDA,可先阅读EsDA其他系列文章,从零开始搭建环境和掌握基本开发流程,已有基础的可以跳过:
- EsDA MPC-ZC1 入门(一)—— 软件安装
- EsDA MPC-ZC1入门(二)—— LED控制
【EsDA应用】5分钟实现一个串口通信业务
准备一块M6G2C核心板和EPC-6G2C-L评估板,并按照下图所示连接好硬件。其中,eth0网口用于下载流图,并连接LCD显示屏接口、电源,以及将USB摄像头连接到开发板的USB HOST1接口。
节点介绍
这里我们需要使用到摄像头相关的AWFlow节点,包括camera_video节点和camera配置节点,以及lcd_display节点用于在显示屏中显示图像。1. camera配置节点
摄像头的配置节点,属于隐式节点,不会显示在画布中,需要配套相应功能节点一起使用。- 设备名(device_name):摄像头设备文件的文件名,用于系统打开摄像头;
- 数据格式(format):摄像头输出的数据格式,支持常见的RGB565、RGB888、YUV422等多种格式;
2. camera_video
camera_video是摄像头的图像输入节点,该节点将摄像头在video模式下的每帧图像输出给下一节点。
名称(name): 节点名称,用于索引查找本节点;
显示名称(displayName): 用于画布上显示的名称;
配置项(camera):绑定一个camera配置节点;
主题(topic):图像主题,可选。
- enable:控制摄像头的图像输出,输入“enable”打开视频流输出,输入“disable”关闭视频流,由push节点提供输入。
2.3 输出
- image:图像数据的缓冲区指针,通常由其它节点接收并处理;
- topic:输出用户在属性中设置的topic属性,可用于后续节点区分图像。
业务处理
本应用主要实现M6G2C开发板采集USB摄像头图像,并在LCD显示屏上进行显示。具体实现如下:使用AWFlow采集摄像头图像非常简单,只需添加一个camera_video图像输入节点,以及一个用于图像显示的lcd_display节点。双击camera_video节点,并在配置项中选择添加一个新的camera节点。在camera配置节点中,根据所使用的摄像头,分别设置设备名、输出图像的数据格式和图像宽度、高度。然后更新配置,在camera_video节点的配置项中,选择上一步新增的camera配置节点即可。lcd_display节点无需我们进行任何配置,它会获取camera_video节点的输出信息,将图像显示在LCD上。
3. 下载验证
因为M6G2C开发板是通过网口去下载流图,所以打开AWFlow Designer后需要配置目标板IP和端口号。然后点击下载运行即可。
流图下载完成后,通过LCD可以看到,我们已经成功从摄像头获取图像,并且成功在显示屏上显示。
关联产品
技术交流群长按识别如下二维码可加入“EsDA嵌入式系统设计自动化交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信:zlgmcu-888。