GenIcam标准(一)】的更多相关文章

2.8.可用的节点类型 本章对每个可用的节点类型提供一个概要的描述,包括其功能.用途以及最关心的参数.另外,对于每个节点在GenICam标准的XML格式文件中的layout,会有一个正式的说明.这个格式文件可以用大多数XML编辑器来读,并且提供了语法检查和上下文相关的帮助,可以大大简化创建相机描述文件的工作. 本文档中的GenApiSchema_Version_1_0.xsd指的是GenApi schema version 1.0.注意,随着标准版本的增长,可能会加入新的节点类型,元素和属性,不…
2     GenApi模块 – 配置相机 2.1. 简介 GenApi模块解决如何去配置相机的问题.主要的思路是,让相机生产厂商为他们的相机提供机器可以识别的产品说明.这些相机描述文件(camera description files)包含所有需要的信息,用以自动地把相机的属性(features)和其寄存器(registers)相对应. 相机的Gain属性是一个典型的例子,假设用户想令Gain=42,利用GenICam,通用的软件可以读相机的描述文件并发现,要把Gain属性设成42意味着向地址…
1.概述 如今的数码摄相机包含了很多的功能,而不仅仅是采集图像.对于机器视觉相机来说,处理图像并把结果附加到图像数据流上,控制附加的硬件,代替应用程序作实时的处理等都是很平常的事情.这也导致了相机的编程接口变得越来越复杂. GenICam的目标是为所有类型的相机提供一个统一的编程接口.无论相机使用的是哪种传输协议或者实现了哪些功能,编程接口(API)都是一样的.见图1.\ 图1 The GenICam vision GenICam标准包含多个模块(module),按照主要功能分为如下部分: l …
2.6. 缓存 如果某个实现对每个写操作支持范围.实现和可用状态的检查,通常会触发一系列对相机的读操作.大多数用于有效性检查的数值很少或不会发生变化,所以可以放入缓存.相机描述文件包含所有必需的定义以确保缓存的一致性. 图8 Area of Interest 为说明这一点,需要用到更复杂的例子.图8显示了相机图像上的AOI.相机只需要发送AOI内的图像,图中的AOI是由Top.Left.Width和Height四个参数给出的矩形. 图9 Controlling the Area of Inter…
GenICam TM的目标是为各种相机和设备提供通用编程接口.无论他们使用什么接口技术(GigE Vision,USB3 Vision,CoaXPress,Camera Link HS,Camera Link等)或者他们正在实现什么功能,应用程序编程接口(API)应始终相同且统一呈现. 具体而言,GenICam TM标准由三个标准组成,具有多个模块,根据要解决的主要任务: GenICam TM GenApi标准(通常简称为GenICam TM标准) 当前版本: GenICam TM GenApi…
2.8.10.Enumeration, EnumEntry Enumeration节点把一个名称(name)映射到一个索引值(index value),并实现Ienumeration接口.Enumeration节点拥有一系列EnumEntries,每一个都表现为可能的{name, index}对.Enumeration节点从Node节点继承元素和属性.另外,它要么有一个表现当前索引值的<Value> ,要么有一个连接到IInteger节点的<pValue>元素. 下面的例子是用En…
2.9.可用的接口 本章用伪代码列出在2.3章介绍过的最重要的接口.对每个接口,实际的实现可以提供更多的方法,例如,除了SetValue(value)方法,还可以用直接映射到SetValue()的方式来实现operator=(value)方法.而且,实际的变量类型也可以不一样,例如,相对于伪代码中的类型string,实际的实现可以是Cstring,std::string或其它的类型. 在第2.8章可以找到更完整的解释. 2.9.1.IInteger接口 l           int64 Get…
1.<?xml> 版本信息和编码方式 IntSwissKnife 需计算和判断的节点 MaskedIntReg 需查询的节点 2.<RegisterDescription> 寄存器描述 ModelName 型号 VendorName 供应商 ToolTip 附加信息,例如增益可以附加其对应的寄存器和数据长度 <Major>.<Minor>.<SubMinor> Major版本号高的文件不向下兼容,向下兼容的意思是新版本兼容旧版本,向上兼容的意思是…
机器视觉必知-GenICam相机通用接口标准 GenICam(相机通用接口): 一种通用软件接口 通用相机接口标准 目前机器视觉行业所使用的相机几乎均以相同方式来进行配置,即:---通过在注册表中的读写参数.但是不同制造商的协议.格式和注册位置往往不同.GenICam的目标是为各种相机和设备提供通用编程接口. 无论他们正在使用什么接口技术(GigE Vision,USB3 Vision,CoaXPress,Camera Link HS,Camera Link,1394 DCAM等),应用程序编程…
[VS开发][图像处理]GigE和USB3 vision选择? 具体得看你现场的应用吧,如 现场需要的工作距离,网线可达到100m以内,USB3.0一般般的5m以内: GigE双端都有卡扣,保证了与相机及计算机的连接,USB3.0的好的也是有卡扣,但一般只有相机一端是有的,计算一端没有,一不小心数据线就会被扯掉: USB3.0最大的优势是数据传输量,但是你的相机数据量GigE就ok的话,USB3.0岂不是浪费? 价格也是需要考虑的: 若GigE相机和USB3.0相机不是从一家买的,而且你需要做二…
GenICam 介绍 简而言之,GenICam 定义了一个通用的相机接口,使得应用程序的编写.相机的控制可以与具体的型号解耦,这样就可以设计出通用的软件完成对不同相机的控制.我们实际使用的CoaXPress 相机当然也支持 GenICam标准,可以阅读其xml文件获取其对应的控制寄存器信息. GenICam (abbreviated for Generic Interface for Cameras) is a generic programming interface for machine…
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 te…
标准Web系统的架构分层 1.架构体系分层图 在上图中我们描述了Web系统架构中的组成部分.并且给出了每一层常用的技术组件/服务实现.需要注意以下几点: 系统架构是灵活的,根据需求的不同,不一定每一层的技术都需要使用.例如:一些简单的CRM系统可能在产品初期并不需要K-V作为缓存:一些系统访问量不大,并且可能只有一台业务服务器存在,所以不需要运用负载均衡层. 业务系统间通信层并没有加入传统的HTTP请求方式.这是因为HTTP请求-响应的延迟比较高,并且有很多次和正式请求无关的通信(这在下面的内容…
前言 在最近看了APUE的标准IO部分之后感觉对标准IO的缓存太模糊,没有搞明白,APUE中关于缓存的部分一笔带过,没有深究缓存的实现原理,这样一本被吹上天的书为什么不讲透彻呢?今天早上爬起来赶紧找了几篇文章看看,直到发现了这篇博客:http://blog.sina.com.cn/s/blog_6592a07a0101gar7.html.讲的很不错. 一.IO缓存 系统调用:只操作系统提供给用户程序调用的一组接口-------获得内核提供的服务. 在实际中程序员使用的通常不是系统调用,而是用户编…
一.标准IO的效率 对比以下四个程序的用户CPU.系统CPU与时钟时间对比 程序1:系统IO 程序2:标准IO getc版本 程序3:标准IO fgets版本 结果: [注:该表截取自APUE,上表中"表3-1中的最佳时间即<程序1>","表3-1中的单字节时间指的是<程序1>中BUFSIZE为1时运行时间结果",fgetc/fputc版本程序这里没放出] 对于三个标准IO版本的每一个其用户CPU时间都大于最佳read版本,因为每次读一个字符…
一.流和FILE对象 系统IO都是针对文件描述符,当打开一个文件时,即返回一个文件描述符,然后用该文件描述符来进行下面的操作,而对于标准IO库,它们的操作则是围绕流(stream)进行的. 当打开一个流时,标准IO函数fopen返回一个指向FILE对象的指针.该对象通常是一个结构,它包含了IO库为管理该流所需要的所有信息:用于实际IO的文件描述符,指向流缓存的指针,缓存的长度,当前在缓存中的字符数,出错标志等等. 我们称指向FILE对象的指针(类型为FILE *)为文件指针.二.缓存 标准IO提…
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 模块简介 Python 3.5 增加了一个有意思的库--typing.这将会给Python增加了类型暗示.类型暗示是一种可以将你的函数变量声明为一种特定类型的声明.当然,类型暗示并不是绑定.它仅仅是暗示,所以这种机制并不能阻止工程师传入他们不应该传入的参数.这个就是Python.你可以在PEP 484中阅读类型暗示的说明,或者你也可以在PEP 483 阅读背后…
1 模块简介 在数年前,Python 2.5 加入了一个非常特殊的关键字,就是with.with语句允许开发者创建上下文管理器.什么是上下文管理器?上下文管理器就是允许你可以自动地开始和结束一些事情.例如,你可能想要打开一个文件,然后写入一些内容,最后再关闭文件.这或许就是上下文管理器中一个最经典的示例.事实上,当你利用with语句打开一个文件时,Python替你自动创建了一个上下文管理器. with open("test/test.txt","w") as f_o…
LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> 接口或 IQueryable<T> 接口.标准查询运算符提供了包括筛选.投影.聚合.排序等功能在内的查询功能.        各个标准查询运算符在执行时间上有所不同,具体情况取决于它们是返回单一值还是值序列.返回单一值的方法(例如 Average 和 Sum)会立即执行.返回序列的方法会延迟查询…
在上一篇文章RIFF和WAVE音频文件格式中对WAV的文件格式做了介绍,本文将使用标准C++库实现对数据为PCM格式的WAV文件的读写操作,只使用标准C++库函数,不依赖于其他的库. WAV文件结构 WAV是符合RIFF标准的多媒体文件,其文件结构可以如下: WAV 文件结构 RIFF块 WAVE FOURCC fmt 块 fact 块(可选) data块(包含PCM数据) 首先是一个RIFF块,有块标识RIFF,指明该文件是符合RIFF标准的文件:接着是一个FourCC,WAVE,该文件为WA…
JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签. 根据JSTL标签所提供的功能,可以将其分为5个类别. 核心标签 格式化标签 SQL 标签 XML 标签 JSTL 函数 JSTL 库安装 Apache Tomcat安装JSTL 库步骤如下: 从Apache的标准标签库中下载…
首先,这份 JS风格指南已经在我司的前端团队实行半年多了: 其次,在程序员的世界里,从入行到资深都需要面对几个世界级的难题,如: 世界上最好的编辑器是什么? 是用空格还是 TAB?用空格还特么衍生出 2空格 VS 4空格. JS到底要不要写分号? ... 最后,PHP是世界上最好的语言. 一.规范VS自由 对程序员的每个个体来说,有代码规范其实不一定是好事,因为肯定会影响到写码的自由. 比如某程序员习惯用 Tab,团队引入了某规范说都要换成 Spaces,这对于 Tab党来说这不是"噩耗&quo…
Atitit webservice发现机制 WS-Discovery标准的规范attilax总结 1.1. WS-Discovery标准1 1.2. 一.WS-Discovery1 1.2.1.   要了解Ad-Hoc和Mangaged模式下的服务发现机制时如何实现的2 1.3. C参考资料2 1.1. WS-Discovery标准 我们传统的服务调用的模式都是这样的:客户端在设计时就预先知道目标服务的地址,并基于这个地址创建客户端终结点对服务进行调用.而我们即将介绍的新特性则是你在预先不知道目…
ERP系统的单据具备标准的功能,这里的单据可翻译为Bill,Document,Entry,具备相似的工具条操作界面.通过设计可复用的基类,子类只需要继承基类窗体即可完成单据功能的程序设计.先看标准的销售合同单据界面: 本篇通过销售合同单据功能,依次讲解编程要点,供参考. 1 新增 Insert 窗体有二种状态,一种是编辑状态,别一种是数据浏览状态,区别在于编辑状态的窗体数据被修改(dirty),在窗体关闭时需要保存数据.点击工具条的新增(Insert)按钮,窗体进入编辑状态.新增状态需要对窗体所…
字体设置 sans和sans-serif为通用字体,具体哪个字体被最终应用由浏览器决定,通用字体只有在其他字体都无效时才会被当作代替方案.通用字体应该放在最后面 sans衬线字体 容易阅读,一般使用在正文内容或字体比较小的情况下 sans-serif无衬线字体 容易疲劳,一般在文章标题中使用 如果在正文中使用无衬线字体,那么必须保证字体设置的足够大 monospace等宽字体 指每个字符宽度都一致,使用它可以特别容易对齐,另外它可以是衬线的或非衬线字体. 缺字符 当有指定的字体但因为里面没有找到…
SPL(标准PHP库 - Standard PHP Library)是PHP5面向对象功能中重要的部分.原文解释是这样的“The Standard PHP Library (SPL) is a collection of interfaces and classes that are meant to solve common problems”. SplSubject 和 SplObserver 接口 The SplSubject interface is used alongside Spl…
标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应用框架,高度体现了软件的可复用性. 1.STL简介 STL最初由惠普实验室开发,并于1998年被定义为国际标准,正式成为C++语言的标准库.在STL中采用了泛型编程的方法,泛型编程是通过模板来实现算法源代码,并将其用于不同数据类型的软件重用方法.从根本上说,STL是一些容器.算法和其他一些组件的集合…
1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,Python中的线程最好是与IO操作一起工作,比如从网络上下载资源或者从你的电脑中读取文件和目录.如果你需要处理一些CPU密集的任务,你最好是看看Python的multiprocessing模块.原因就是Python有GIL锁(解释器全局锁),使得所有的线程在主线程内运行.由于这个原因,当你使用线程执…
1 模块简介 作为一个Python初学者,你首先要学会的知识就是如何引入其它模块或者包.但是,我发现有些开发者虽然使用Python很多年,依然不了解Python引入机制的灵活性.这篇文章,我们就会研究以下的主题: 常规的引入 使用from 相对引入 选择性引入 局部引入 引入的陷阱 2 模块使用 2.1 常规的引入 常规的引入,最常见的形式如下, import sys 你所需要做的就是使用关键字"import",然后指定你实际想要引入的模块或者包.import最友好的方式就是它支持多个…
1 模块简介 Python提供了itertools模块,可以创建属于自己的迭代器.itertools提供的工具快速并且节约内存.开发者可以使用这些工具创建属于自己特定的迭代器,这些特定的迭代器可以用于有效的遍历. 2 模块使用 2.1 无限迭代器 itertools中有个三个迭代器是无限迭代的,这就意味着当你在使用它们时,你需要了解你要么从这些迭代器中终止,要么就是无限循环. count count(start = 0, step = 1),count迭代器返回一系列值,以传入的start参数开…