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.mzph.cn/news/778063.shtml

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

相关文章

vue3从精通到入门6:v-memo指令

v-memo是一个用于优化组件渲染性能的指令。它允许你根据某个条件来缓存组件的虚拟 DOM 树,从而在条件没有变化时避免不必要的重新渲染。这对于那些接收大量 props 且渲染成本较高的组件来说非常有用。 用法 v-memo 指令接受一个表达式或一个数组作为参数&#xff0…

JVM实战之性能调优[2](线程转储案例认识和分析)

文章目录 版权声明案例1:CPU占用率高问题问题描述解决思路补充内容 案例2:接口响应时间长问题问题描述解决思路Arthas trace命令Arthas watch命令解决问题 案例3:定位偏底层性能问题问题描述解决思路:Arthas火焰图问题解决 案例4&…

论文阅读,Accelerating the Lattice Boltzmann Method(五)

目录 一、Article:文献出处(方便再次搜索) (1)作者 (2)文献题目 (3)文献时间 (4)引用 二、Data:文献数据(总结归纳,方便理解&am…

nimbus-jose-jwt库简单使用 公私钥字符串互相转换

nimbus-jose-jwt库简单使用 对称密钥签名非对称密钥对公私钥与字符串互相转换生成密钥对公私钥转字符串字符串转公私钥公钥字符串转公钥对象私钥字符串转私钥对象 maven坐标 <dependency><groupId>com.nimbusds</groupId><artifactId>nimbus-jose-jwt&…

大话设计模式之原型模式

原型模式&#xff08;Prototype Pattern&#xff09;是一种创建型设计模式&#xff0c;它用于创建对象的复制&#xff0c;同时又能保持对象的封装。原型模式通过复制现有对象的方式来创建新的对象&#xff0c;而无需知道具体创建过程的细节。 在原型模式中&#xff0c;通常会有…

专题:一个自制代码生成器(嵌入式脚本语言)之对象模型

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 专题&#xff1a;一个自制代码…

使用Python进行双色球选号

在这篇博客中&#xff0c;我们将介绍如何使用Python编写一个双色球选号的小程序。双色球是一种流行的彩票游戏&#xff0c;选号由6个红球号码和1个蓝球号码组成&#xff0c;红球号码范围是1到33&#xff0c;蓝球号码范围是1到16。 程序设计思路 我们的程序将使用Python的rand…

Windows系统搭建Oracle结合内网穿透实现公网访问本地数据库

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 前言 Oracle&#xff0c;是甲骨文公司的一款关系…

3.28 c++

算数运算符 #include <iostream> using namespace std; class Num {int rel; //实部int vir; //虚部 public:Num():rel(2),vir(1){}Num(int rel,int vir):rel(rel),vir(vir){}Num &operator(const Num &other){cout << "Num的拷贝赋值函数"…

Linux(CentOS)/Windows-C++ 云备份项目(结项,项目总结)

项目名称&#xff1a;云备份系统 项目功能&#xff1a; 搭建云备份服务器和客户端。 客户端程序运行在Windows下&#xff0c;将指定的目录下的文件备份到服务器上&#xff0c;并且支持浏览器下载&#xff0c;查看。 其中下载支持断点续传&#xff0c;服务器对备份文件进行热…

java ssh 电影院购票管理系统eclipse开发mysql数据库MVC模式java编程网页设计

一、源码特点 JSP ssh 电影院购票管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用 B/S模式开发。开发环境为TOMCAT…

C# 高级文件操作与异步编程探索(初步)

文章目录 文本文件的读写探秘StreamReader 类深度剖析StreamWriter 类细节解读编码和中文乱码的解决方案 二进制文件的读写BinaryReader 类全面解析BinaryWriter 类深度探讨 异步编程与C#的未来方向同步与异步&#xff1a;本质解读Task 的神奇所在async/await 的魔法 在现代编程…

推动制药行业数字化转型:基于超融合架构的MES一体机解决方案

随着中国对信息化重视程度的不断加深&#xff0c;制药行业作为国民经济的重要支柱之一&#xff0c;也在积极寻求通过数字化手段提升产业效率与产品质量。自党的十六大提出“以信息化带动工业化”的战略以来&#xff0c;制药业的这一转型探索尤为迫切。 在现代制药生产中&#…

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

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

芒果YOLOv8改进145:全新风格原创YOLOv8网络结构解析图

&#x1f4a1;本篇分享一下个人绘制的原创全新风格 YOLOv8网络结构图 感觉搭配还行&#xff0c;看着比较直观。 该专栏完整目录链接&#xff1a; 芒果YOLOv8深度改进教程 订阅了专栏的读者 可以获取一份 <可以自行修改 / 编辑> 的 YOLOv8结构图修改源文件 YOLOv8结构图…

深入解析Oracle数据库中的分页查询原理及应用实战案例

在Oracle数据库中执行分页查询&#xff0c;尤其是大规模数据检索时&#xff0c;需要高效且精确地定位所需数据范围。 1. 使用 ROWNUM 分页查询 原理&#xff1a; ROWNUM是一个Oracle内建的伪列&#xff0c;它会为每个查询返回的行分配一个从1开始的连续行号。然而&#xff0c…

HackTheBox-Machines--Legacy

文章目录 1 端口扫描2 测试思路3 445端口漏洞测试4 flag Legacy 测试过程 1 端口扫描 nmap -sC -sV 10.129.227.1812 测试思路 目标开启了135、139、445端口&#xff0c;445 SMB服务存在很多可利用漏洞&#xff0c;所以测试点先从445端口开始。而且在Nmap扫描结果中&#xff0c…

项目四-图书管理系统

1.创建项目 流程与之前的项目一致&#xff0c;不再进行赘述。 2.需求定义 需求: 1. 登录: ⽤⼾输⼊账号,密码完成登录功能 2. 列表展⽰: 展⽰图书 3.前端界面测试 无法启动&#xff01;&#xff01;&#xff01;--->记得加入mysql相关操作记得在yml进行配置 配置后启动…

量化交易入门(二十五)什么是RSI,原理和炒股实操

前面我们了解了KDJ&#xff0c;MACD&#xff0c;MTM三个技术指标&#xff0c;也进行了回测&#xff0c;结果有好有坏&#xff0c;今天我们来学习第四个指标RSI。RSI指标全称是相对强弱指标(Relative Strength Index),是通过比较一段时期内的平均收盘涨数和平均收盘跌数来分析市…

03-Pandas的方法介绍

str.startwith()&#xff0c;用于检查列中的值是否以指定的字符串开头 df patients[patients[conditions].str.startswith("DIAB1") | patients["conditions"].str.contains(" DIAB1", regexFalse)]regexFalse代表不使用正则表达式进行匹配&…