美文网首页
高级主题

高级主题

作者: e196efe3d7df | 来源:发表于2020-09-16 10:21 被阅读0次

    pylon的结构

    本节简要介绍了pylon C ++ API的最重要概念。


    pylon结构.png

    Transport Layers

    transport layer(传输层)就是物理接口(例如:IEEE 1394,GigE或Camera Lin)的抽象。每个接口都能通过驱动程序来访问相机设备。pylon当前包含了四个不同的传输层

    • PylonGigE: 适用于千兆以太网相机,使用的是GigE Vision协议
    • Pylon1394:适用于IIDC 1394兼容相机(在Linux或者OS X平台上不可用)
    • PylonUsb:适用于USB3 Vision兼容相机
    • PylonCLSer:适用于Camera Link相机,使用的是CL串行接口(仅限于相机配置,在Linux和OS X平台上不可用)

    Transport Layers对象就是设备工厂,可用于:

    • 发现 相机(这个过程也叫作相机枚举)
    • 创建 pylon Devices, pylon Devices可用来获取相机设备
    • 销毁 pylon Devices
    • 获取 传输层 特殊参数

    Transport Layer Factory

    程序不能直接获取传输层对象,要用Transport Layer Factory来创建 Transport Layer对象,每个对象代表一个传输层。另外,Transport Layer Factory可以用做设备工厂,用以创建和销毁所用传输层的pylon Devices

    底层API pylon Devices

    在pylon中,物理相机使用pylon Devices来表示的。只能在进行底层编程时,才能直接使用pylon Devices,否侧无法直接使用

    Instant Camera 类

    可使用Instant Camera,方便的访问相机设备,并且高度可定制化。它可以让你用几行简单的代码就能抓取图像。它的内部就是使用了pylon Devices。pylon Devices需要被创建并附加到Instant Camera对象上。另外,可以通过Device Specific Instant Camera类快捷的访问相机参数。甚至可以通过Instant Camera Array 类,用非常简单的代码,从多个相机抓取图像。

    GenApi Node Maps

    pylon API使用的是GenICam标准来定义相机的配置和其他参数,该标准是由欧洲机器视觉协会(EMVA)制定的。GenICam规范http://www.GenICam.org定义了相机描述文件的格式。这些文件描述了相加的配置接口,这些相机都符合GenICam标准。描述文件的格式是XML,文件中描述了相机的各个寄存器和他们依赖关系,还描述了通过底层寄存器的读写操作来访问高级功能(例如Gain(相机增益),Exposure Time(曝光时间),Image Format(图像格式))的信息。
    在程序中,用Nodes对象来表示相机描述文件的元素。例如,一个node可以表示一个相机寄存器,一个相机参数(例如Gain),一个变量参数集合,等等。每个node都实现了GenApi::INode接口。
    这些node通过不同的关系链接在一起,可在www.GenICam.org找到GenApi的标准文档。 在运行时,一个XML描述文件可实例化为一个node map。
    可以使用GenICam的GenApi模块提供的代码生成器,从相机描述文件创建一个编程接口。这个接口用一个参数类来表示,里面包含了每个相机参数的成员。这些成员代表了GenApi node的引用或者句柄。这样一个参数类,可以表示某一传输层(例如Gige) 的相机的参数
    在pylon中, node maps 不仅可以用来表示相机参数,还可用来表示其他pylon对象(比如Transport Layer对象)或者 Image Format Convertert 的参数
    例如:

    • Pylon::CInstantCamera 类中有 Pylon::CInstantCamera::GetNodeMap() 方法,该方法返回 node map,包含了所有相机参数集合,GenApi nodes
    • Pylon::CImageFormatConverter::GetNodeMap() 用来获取 Image Format Converter的参数

    支持图像处理

    除了用于抓取图像的Instant Camera类之外,pylon还提供了 Image Handling Support 来处理抓取的图像。有image类,Windows位图支持,图像格式转换器,图像窗口,图像的加载与保存

    底层API

    请尽量使用Instant Camera类,不要随便使用底层API

    Camera 类

    底层camera对象包装了一个pylon Device,提供了快捷的方法访问相机参数、获取流抓取器、获取事件抓取器、使用GenApi参数类获取Transport Layer(传输层)。底层camera类可用Device Specific Instant Camera类来代替

    Stream Grabbers

    --更新中...

    相关文章

      网友评论

          本文标题:高级主题

          本文链接:https://www.haomeiwen.com/subject/asztyktx.html