当前位置:网站首页>全志科技T3开发板(4核ARM Cortex-A7)——视频开发案例
全志科技T3开发板(4核ARM Cortex-A7)——视频开发案例
2022-06-11 18:16:00 【Tronlong创龙】
本文主要介绍基于全志科技T3国产平台的视频开发案例,内容包含了gige_capture案例、案例、GigE工业相机配置、图像采集并显示、图像采集以及案例编译保存、关键代码等。
本次测试板卡为基于创龙科技TLT3-EVM是一款基于全志科技T3处理器设计的4核ARM Cortex-A7高性能低功耗国产评估板,每核主频高达1.2GHz。

评估板接口资源丰富,引出双路网口、双路CAN、双路USB、双路RS485等通信接口,板载Bluetooth、WIFI、4G(选配)模块,同时引出MIPI LCD、LVDS LCD、TFT LCD、CVBS OUT、CAMERA、LINE IN、H/P OUT等音视频多媒体接口,支持双屏异显、[email protected] H.264视频硬件编解码,并支持SATA大容量存储接口。
gige_capture案例
案例说明
表 1
案例名称 | 目录 | |
gige_capture | bin | 可执行程序 |
lib | 程序运行依赖库 | |
pylonSDK | 第三方pylonSDK开发包 | |
src | 程序源码 | |
tools | yuvplayer工具 | |
案例功能具体说明如下:
- 查询局域网内的GigE工业相机。
- 采集GigE工业相机图像数据,写至framebuffer以实现图像显示,格式为gray8。
- 采集GigE工业相机图像数据,保存至指定文件中,格式为gray8。
程序流程图如下图所示。

图 1
案例测试
本案例使用GigE工业相机型号为Basler的acA720-290gm,最高支持分辨率为720x540,帧率可达291fps。
通过网线将评估板千兆网口RGMII ETH和GigE工业相机连接至相同路由器,确保在同一局域网下。将评估板VGA OUT通过VGA线连接至VGA显示屏,用于显示采集图像,硬件连接如下图所示。

图 2
如通过网线将评估板和GigE工业相机直连,需将GigE工业相机配置为静态IP,并设置评估板和GigE工业相机的IP地址为同一网段。
GigE工业相机配置
本小节使用Basler官方提供的pylonSDK开发包,在PC机Ubuntu中对GigE工业相机进行IP地址获取方式、采集帧率等参数配置。
将案例"pylonSDK\x86_64\"目录下的pylonSDK-5.1.0.12682-x86_64.tar.gz压缩包拷贝至Ubuntu任意路径,并进入压缩包所在目录执行如下命令将其解压至当前目录下。
Host# tar -zxf pylonSDK-5.1.0.12682-x86_64.tar.gz -C .

图 3
将GigE工业相机上电,通过网线将PC机和GigE工业相机连接至相同路由器,并执行如下命令进入"pylon5/bin/"目录下运行IpConfigurator工具,配置IP地址获取方式。
Host# cd pylon5/bin/
Host# ./IpConfigurator

图 4
程序运行成功后,将会打开pylon IP Configurator窗口,点击Refresh刷新并识别GigE工业相机。由配置界面可看到GigE工业相机支持静态IP(Static IP)和动态IP(DHCP)两种模式。本次采用动态IP模式进行测试,选择DHCP选项,点击Save保存。

图 5
IP配置完成后,关闭配置窗口,然后在bin目录下,执行如下命令运行PylonViewerApp工具,配置采集帧率等参数。
Host# ./PylonViewerApp

图 6
在如下界面中双击选中GigE工业相机设备,"User Level"选择Expert。然后点击打开"Transport Layer"栏目,将"Packet Size"设置为1500、"Inter-Packet Delay"设置为1100。"Inter-Packet Delay"参数值会影响采集帧率,不同相机需根据实际情况进行修改。
点击菜单栏

按钮进行连续采集,即可查看GigE工业相机采集到的图像(如下图)。配置完成后,请点击

按钮释放GigE工业相机连接。

图 7
图像采集并显示
评估板上电,将案例lib目录下的库文件压缩包libpylon_armhf.tar.gz拷贝至评估板文件系统任意目录,并进入压缩包所在目录执行如下命令将其解压至"/usr/lib/"目录。
Target# tar -xvf libpylon_armhf.tar.gz -C /usr/lib

图 8
将案例bin目录下的gige_capture可执行文件拷贝至评估板文件系统任意目录下。在其所在目录下执行如下命令查看程序参数说明。
Target# ./gige_capture --help

图 9
执行如下命令扫描局域网内的GigE工业相机,并测试GigE工业相机图像采集帧率,本次测试为159fps。
Target# ./gige_capture -m scan

图 10
并执行如下命令,先将Qt程序关闭,并初始化framebuffer,再运行程序将GigE工业相机采集图像显示至VGA显示屏上。若图像显示不清晰,请调节相机镜头光圈和焦距。本次实测GigE工业相机采集并显示的处理帧率为82fps,实际的帧率会受硬件性能和网络环境的影响有一定的波动。
Target# killall Launcher MediaUI CameraUI //关闭Qt程序
Target# fbinit //初始化Framebuffer
Target# echo 0,0 > /sys/class/disp/disp/attr/fb2ui
Target# ./gige_capture -m display -o /dev/fb0

图 11

图 12
本次测试的CPU占用率如下所示。

图 13 CPU占用率
图像采集并保存
在gige_capture可执行文件所在目录下执行如下命令,将GigE工业相机采集的图像以gray8的格式保存至指定路径的文件中。图像采集并保存的帧数会受存储设备的读写速率影响,本次实测为25fps。
Target# ./gige_capture -m save -o /root/test.gray8

图 14
请将保存的test.gray8文件复制到Windows下(本次通过U盘复制),使用案例tools目录下的yuvplayer.exe程序打开文件,点击"Sixe -> Custom",设置图像格式Width为720,Height为540,点击"Color -> Y",点击播放按钮即可显示图像,如下所示。

图 15

图 16

图 17
案例编译
将案例src源码目录和pylonSDK目录拷贝至Ubuntu同一工作目录下,执行如下命令,进入"pylonSDK/armhf/"目录,将压缩包pylonSDK-5.1.0.12682-armhf.tar.gz解压至当前目录。
Host# cd pylonSDK/armhf/
Host# tar -zxf pylonSDK-5.1.0.12682-armhf.tar.gz

图 18
执行如下命令,进入src目录下,修改makefile文件,将PYLON_ROOT的参数值修改为ARM端pylonSDK实际路径。
Host# cd ../../src/

图 19

图 20
请先确保已参考Linux系统使用手册编译过LinuxSDK,构建T3处理器对应的GCC编译器。在src目录下执行如下命令,使用LinuxSDK开发包目录下的GCC编译器进行案例编译。编译完成后,将在当前目录下生成可执行文件。
Host# CC=/home/tronlong/T3/lichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/arm-linux-gnueabihf-gcc make

图 21
想要获取案例的关键代码以及更多测试案例详细说明,欢迎在评论区留言~
边栏推荐
- SQL statement when the query condition is blank, all data will be queried by default. If it is not blank, the query will be performed according to the condition
- EditText amount limit
- Radiogroup dynamically add RadioButton
- Reading summary of nacos2.x source code
- . Net core redis hyperloglog type
- H.264概念
- [C语言]限制查找次数,输出次数内查找到的最大值
- Feign shares login information for request
- New work of "the father of LSTM": a new method towards self correcting neural network
- 牛客刷题——两种排序方法
猜你喜欢

Mysql8 installation, Navicat installation, sqli labs setup

On the problem that the while loop condition in keil does not hold but cannot jump out

SISO Decoder for min-sum(补充章节2)

“LSTM之父”新作:一种新方法,迈向自我修正的神经网络

使用mysql判断日期是星期几
![[Golang]力扣Leetcode - 349. 两个数组的交集(哈希表)](/img/92/03de54c9f08eae5bc920b04d2b8493.png)
[Golang]力扣Leetcode - 349. 两个数组的交集(哈希表)
![[FAQs for novices on the road] about project management](/img/14/68f5e4cead5573fc932350d8d9b06e.png)
[FAQs for novices on the road] about project management

Async leads to unexpected function results and changes the intention of the original code; await is only valid in async functions and the top level bodies of modules

ubuntu 安装psql以及运行相关命令

软件需求工程复习
随机推荐
学习使用LSTM和IMDB评论数据进行情感分析训练
Cryptology Summary
[not forgetting the original intention and forging ahead] 2021 Zhongchuang Suanli new year conference and anniversary celebration
[c language] shift elements after sorting elements of an array
5分钟了解攻防演练中的红蓝紫
使用mysql判断日期是星期几
[C语言]限制查找次数,输出次数内查找到的最大值
Some problems of DC-DC bootstrap capacitor
SQL语句当查询条件为空时默认查询全部数据,不为空是则按照条件进行查询
DC-DC自举电容(BOOT)几个问题
SISO decoder for a general (n,n-1) SPC code(補充章節3)
高并发架构设计
Sword finger offer (2nd Edition)
软件需求工程复习
Feign 共享登录信息进行请求
合并多棵二叉搜索树
Modern application of LDAP directory server
The HashSet collection stores student objects and traverses
SA token single sign on SSO mode 2 URL redirection propagation session example
5 minutes to understand the red, blue and purple in the attack and defense drill