当前位置: 首页 > news >正文

GenICam-GenApi简介

EMVA 1288标准之GemICam-GenApi学习与解读

背景介绍

当前相机不仅用于传输图像,还打包了越来越多的功能。这就导致相机的编程接口越来越复杂。

GenICam的目标是为所有类型的相机提供一个通用的编程接口,无论相机使用何种接口技术,或者实现了什么样的特性,它们的编程接口都应该相同。
请添加图片描述

根据要解决的主要任务不同,GenICam标准包含多个模块

  • GenApi:用于对相机进行配置的应用程序编程接口(API)。
  • GenTL:支持抓取图像的传输层(transport layer, TL)API。
  • SFNC:标准特性的命名约定。
  • CLProtocol:用于将Camera Link相机转接到GenAPI的API。
  • GenCP:通用控制协议。

各个模块可以独立于其他模块进行发布

GenApi模块简介

GenApi模块主要解决如何配置相机的问题。主要思想是,相机供应商提供camera description files,这些文件包含将相机特性自动化映射为相机寄存器的信息。

例如:用户想要设置相机增益Gain=42。使用GenICam的通用软件将自动读取相机的描述文件,然后搞清楚将Gain设置为42,意思是将0x2A这个值写入到地址为0x0815的寄存器上。其他可能涉及到的工作可能是提前检查相机是否具备增益属性以及检查新值是否在允许的增益范围。

为相机新增属性仅仅只需要扩展相机描述文件,就可使新特性在GenICam应用下立即可用。
请添加图片描述

上图展示配置相机时涉及到的层。应用想要设置相机属性,只需要编写类似下面这样的代码:

Camera.Gain = 42;

GenApi模块会将这个调用转换为一系列transport layer API的调用,这些API主要用于寄存器存取,类似下面这样的代码:

TransportLayer.WriteRegister( 0x0815, 0x2A, 2 ); // address, data, length

最后,transport layer将会把这些调用传递给相机接口。目前,GenApi假定相机属性和寄存器地址一一对应,不会多个属性共用同一个寄存器

GenICam标准定义了相机描述文件的语法以及transport layer API的语义。并且为各个相机属性定义了推荐的名字和类型。GenICam标准不包含实际解析描述文件的代码,也不包含transport layer代码。任何人都可以自定义其实现(GenICam有一个可以免费使用的参考实现)。

GenApi部分仅处理相机描述文件,意图帮助用户理解GenApi的关键设计思想,并帮助用户编写他们自己的相机描述文件。

http://www.lryc.cn/news/327411.html

相关文章:

  • 如何创建纯净版Django项目并启动?——让Django更加简洁
  • 蓝桥杯 2022 省A 选数异或
  • 计数器选型参数,结构原理,工艺与注意问题总结
  • Android 性能优化实例分享-内存优化 兼顾效率与性能
  • IT服务监督管理案例分析题
  • 【spring】AbstractApplicationContext 的refresh() 方法学习
  • 零基础10 天入门 Web3之第1天
  • 【1】网络协议基础概念
  • flutter 中 GetxController 和 GetxService 的区别和使用场景
  • Python+Django+Yolov5路面墙体桥梁裂缝特征检测识别html网页前后端
  • uniApp使用XR-Frame创建3D场景(7)加入点击交互
  • 单元测试11213123231313131231231231
  • libVLC 捕获鼠标、键盘事件
  • 京东云0基础搭建帕鲁服务器_4核16G和8核32G幻兽帕鲁专用服务器
  • OpenCV 如何使用 XML 和 YAML 文件的文件输入和输出
  • playbook的介绍、应用与实施
  • uniApp使用XR-Frame创建3D场景(5)材质贴图的运用
  • 阿里云CentOS7安装Hadoop3伪分布式
  • 78.子集90.子集2
  • 基于Ubuntu的Linux系统安装jsoncpp开发包过程
  • 葵花卫星影像应用场景及数据获取
  • Jenkins升级中的小问题
  • Apache Hive的基本使用语法(二)
  • 基于单片机16位智能抢答器设计
  • idea默认代码生成脚本修改
  • StarRocks实战——多点大数据数仓构建
  • jmeter总结之:Regular Expression Extractor元件
  • 快速上手Spring Cloud 七:事件驱动架构与Spring Cloud
  • leetcode 1997.访问完所有房间的第一天
  • 【InternLM 实战营第二期笔记】书生·浦语大模型全链路开源体系及InternLM2技术报告笔记