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.hqwc.cn/news/575921.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络】第 9 问:四种信道划分介质访问控制?

目录 正文什么是信道划分介质访问控制?什么是多路复用技术?四种信道划分介质访问控制1. 频分多路复用 FDM2. 时分多路复用 TDM3. 波分多路复用 WDM4. 码分多路复用 CDM 正文 什么是信道划分介质访问控制? 信道划分介质访问控制(…

admin端

一、创建项目 1.1 技术栈 1.2 vite 项目初始化 npm init vitelatest vue3-element-admin --template vue-ts 1.3 src 路径别名配置 Vite 配置 配置 vite.config.ts // https://vitejs.dev/config/import { UserConfig, ConfigEnv, loadEnv, defineConfig } from vite im…

OceanBase OBCA 数据库认证专员考证视频

培训概述 OceanBase 认证是 OceanBase 官方推出的唯一人才能力认证体系,代表了阿里巴巴及蚂蚁集团官方对考生关于 OceanBase 技术能力的认可,旨在帮助考生更好地学习 OceanBase 数据库产品,早日融入 OceanBase 技术生态体系,通过由…

IP种子是什么?理解和应用

在网络世界中,IP种子是一个广泛应用于文件共享和网络下载领域的概念。它是一种特殊的标识符,用于识别和连接到基于对等网络(P2P)协议的文件共享网络中的用户或节点。本文将深入探讨IP种子的含义、作用以及其在网络中的应用。 IP地…

创建一个vue3 + ts + vite 项目

vite 官网: https://cn.vitejs.dev/guide/ 兼容性注意 Vite 需要 Node.js 版本 18,20。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版本。 安装项目 1. 使用n…

【计算机网络篇】数据链路层(4.1)可靠传输的相关概念

文章目录 🍔可靠传输的相关概念⭐分组丢失⭐分组失序⭐分组重复 🥚注意 🍔可靠传输的相关概念 使用差错检测技术(例如循环冗余校验CRC),接收方的数据链路层就可以检测出帧在传输过程中是否产生了误码&…

20232831 2023-2024-2 《网络攻防实践》第4次作业

目录 20232831 2023-2024-2 《网络攻防实践》第4次作业1.实验内容2.实验过程(1)ARP缓存欺骗攻击(2)ICMP重定向攻击(3)SYN Flood攻击(4)TCP RST攻击(5)TCP会话…

Windows下安装使用Squirrel

引言 SQuirrel SQL Client是一个用Java写的数据库客户端,用JDBC统一数据库访问接口以后,可以通过一个统一的用户界面来操作MySQL PostgreSQL MSSQL Oracle等等任何支持JDBC访问的数据库。使用起来非常方便。而且,SQuirrel SQL Client还是一个典型的Swing程序。 如果您的工作…

【已修复】iPhone13 Pro 长焦相机水印(黑斑)修复 洗水印

iPhone13 Pro 长焦相机水印(黑斑)修复 洗水印 问题描述 iPhone13 Pro 后摄3倍相机有黑色斑点(水印),如图所示, 后摄相机布局如图所示, 修复过程 拆机过程有风险,没有把握最好不要…

戴尔电脑Dell SupportAssist占用内存高,卸载Dell SupportAssist

咨询戴尔客服了解到,SupportAssist是机器出厂自带的一款应用,主要的功能是可以检查驱动更新以及做一些硬件方面的健康检测,有时候后台运行可能会导致进程占用内存比较大,导致访问被的应用崩溃。 咨询卸载不影响之后,然…

啥也不会的大学生看过来,这8步就能系统入门stm32单片机???

大家好,今天给大家介绍啥也不会的大学生看过来,这8步就能系统入门stm32单片机,文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!可进群免费领取。 对于没有任何基础的大学生来…

【MagicDrive环境配置】新手配俩星期版

1.创建一个新的环境conda create -n newdrive python3.8 2.激活该环境conda activate newdrive 3.下载MagicDrive源码 git clone --recursive https://github.com/cure-lab/MagicDrive.git,如果出现时间超时八成是网的问题,直接自己下载解压就好 3.我的…