开源GenICam项目上手-1
GenICam 说明
一个统一的编程规则,这样我们只需要一个应用软件,就可以支持符合标准的不同型号相机,当我们升级相机、更换相机时,不需要编写不同的软件代码。
The goal of GenICamTM (Generic Interface for Cameras) is to provide a generic programming interface for all kinds of devices (mainly cameras), no matter what interface technology (GigE Vision, USB3 Vision, CoaXPress, Camera Link HS, Camera Link etc.) they are using or what features they are implementing. The result is that the application programming interface (API) will be identical regardless of interface technology.
Aravis 项目
Aravis是一个基于C/OBJECT C的视频采集、处理开源项目
Aravis is a glib/gobject based library for video acquisition using Genicam cameras. It currently implements the gigabit ethernet and USB3 protocols used by industrial cameras. It also provides a basic ethernet camera simulator and a simple video viewer.
https://github.com/AravisProject/aravis 这个是GitHub的仓库地址,里面会有更详细的说明;
编译Aravis
Step 1: 安装msys2
感谢清华的开源镜像,按照下面网址的说明,下载msys2-x86_64-20220128.exe ,并对镜像地址进行设置,如果有更新版本,也可以选择最新版本;
https://mirrors.tuna.tsinghua.edu.cn/help/msys2/
Step 2: 安装依赖的库文件
根据仓库CI脚本的说明,安装必要的库
https://github.com/AravisProject/aravis/blob/main/.github/workflows/aravis-mingw.yml
Step 3:编译
使用meson完成编译、安装,安装后的exe默认放在 C:\msys64\mingw64\bin 目录,可以双击 arv-viewer-0.8.exe 运行exe
https://aravisproject.github.io/aravis/building.html
Step 4: 打开程序测试
默认会连接一下虚拟的相机设备用于测试
下面是运行结果与状态监测页面
这个项目简直不要太优秀,我们计划从该开源项目学习其GenICam的实现方法、参考甚至复用其界面编程,值得注意Aravis的界面与Basler的pylon viewer是比较类似的,都是很友好,值得学习的界面设计。