7

是否有一个库可用于在 Linux 上使用纯 C 从 GigE 相机获取图像?更具体地说,我安装了 Basler GigE 相机和 pylon 软件。还有 C++ 中的示例代码。但我想要并且需要使用 C (在我的工作中,这实际上是使用 C正确做法)。如果有一些对 GigE有用的libdc1394 ,那就太好了。

4

3 回答 3

6

“GigE Vision”其实是一种计算机视觉相机标准,大部分相机也实现了调整参数的Genicam标准。至少理论上是这样的——我有一个高速 GigE 相机,由于某种未知原因,Pylon 或 AVT 没有找到它(官方说它只有 Pleora 的 eBus 支持)。您可能可以获得这些标准的规范,但我不确定它们是否可以免费获得。

关于一个库,我刚刚在 Ubuntu12.04 下尝试了Aravis,它适用于我的相机(以 190 帧/秒的速度流式传输 512x512 像素)。据我所知,它是用 C 编写的。作为提示,要编译包含的查看器,您必须安装所有 gstreamer-dev 包,包括 libgstreamer-plugins-base0.10-dev。

于 2013-04-05T17:54:53.527 回答
4

大多数实现将使用 C++,并且充其量会公开一个基于此构建的 c-api,因为 GenICam 实现起来非常复杂 - 并且参考实现有效,是免费的,并且几乎所有 SDK 供应商都在使用。您可以在没有那么多 C 语言的情况下实现很多采集,但很难将 GenICam 排除在循环之外 - 这是因为供应商已将 GenICam XML 文档用作一种特定于领域的编程语言/环境 - 所做的工作可与从头开始实现一个网络浏览器。

Aravis确实存在,但依赖于 gstreamer,而且似乎主要使用 C 语言,但它只能在许多相机所需的复杂 XML 支持上走这么远。除了需要高性能或高效率的地方,我永远不会在关键任务设置或需要可靠操作的地方使用 gstreamer。我相信市场上最好的选择是 Pleora 的 SDK 仅供参考 - 没有关系。话虽如此 - 我已经编写了这样一个库(使用 C++ :-),我无法分享它来解决我提到的问题。

于 2015-04-29T07:59:56.140 回答
2

GigE 标准对开源不太友好——您必须向标准组织支付年度许可费用,这就是为什么大多数使用 GigE Vision 的软件都需要花费大量资金的原因。一群公司共同制定标准,他们不太可能很快将其发​​布给全世界。

所以这里有一些你的选择(我能想到的)......

1)自己对协议进行逆向工程。这很复杂,所以这将是一个大项目。

2)也许你会很幸运,找到一家公司有他们可以卖给你的 SDK 的 C 版本?

3) 使用 C++ :-) (jk...)

4) 向标准组织付费,让您可以访问或与其中的公司合作。

5) 使用试图对标准进行逆向工程的开源项目。(我不知道合法性规则是什么)。示例:Aravis 和 OpenGigEVision。这些解决方案可能暂时不完整,但它们至少应该支持基础知识。

如果您没有太多时间或金钱可以花费,我认为#5 是您最好的选择。

于 2015-01-15T21:24:44.657 回答