是否有一个库可用于从Linux上使用普通C的GigE相机获取图像? 更具体地说,我安装了Basler GigE相机和pylon软件。还有C ++中的示例代码。但我想要并且需要使用C(在我的工作中,这实际上是 正确的做法使用C )。如果有一些有用的东西({3}}只是为了GigE,那就太棒了。
答案 0 :(得分:6)
"GigE Vision"实际上是计算机视觉相机标准,大多数相机也实施Genicam标准来调整参数。 至少这是理论 - 我有一台Pylon或AVT找不到的高速GigE相机,原因不明(官方称它只是来自Pleora的eBus支持)。您可能能够获得这些标准的规范,但我不确定它们是否可以免费获得。
关于一个库,我刚试过Ubuntu12.04下的Aravis,它适用于我的相机(以每秒190帧的速度传输512x512像素)。据我所知,它是用C语言编写的。作为提示,要编译包含的Viewer,您必须安装所有gstreamer-dev软件包,包括libgstreamer-plugins-base0.10-dev。
答案 1 :(得分:4)
大多数实现都将使用C ++,并且最好在其上公开c-api构建,因为GenICam是一个非常复杂的实现 - 并且参考实现可行,并且几乎所有SDK供应商都使用它。你可以在C中实现很多收购,但是很难将GenICam从循环中删除 - 这是因为供应商已经将GenICam XML文档用作某种特定领域的编程语言/环境 - 这种努力可以与从头开始实现Web浏览器。
Aravis确实存在,但依赖于gstreamer,似乎主要在C中,但它只会在许多相机所需的复杂XML支持上发挥作用。我不会在关键任务设置中使用gstreamer,或者除了需要高性能或高效率之外还需要可靠的操作。我相信市场上最好的选择是Pleora的SDK FYI - 没有关系。话虽如此 - 我已经写了这样一个库(用C ++ :-),我无法分享这些库以解决我提到的问题。
答案 2 :(得分:2)
GigE标准不是非常开源的 - 您必须向标准组织支付年度许可费,这就是使用GigE Vision的大多数软件需要花费大量资金的原因。一群公司聚集在一起制定标准,他们不太可能很快将它发布到世界各地。
所以这里有一些你可以想到的选择......
1)自行反向设计协议。它非常复杂,因此这将是一个很大的项目。
2)也许你会很幸运,找到一家拥有可以销售给你的C版SDK的公司?
3)使用C ++ :-)(jk ...)
4)向标准组织付款,让您访问或与其合作的公司合作。
5)使用试图对标准进行逆向工程的开源项目。 (我不知道合法性规则是什么)。示例:Aravis和OpenGigEVision。这些解决方案可能暂时不完整,但它们至少应该支持基础知识。
如果您没有足够的时间或金钱可以花费,我认为#5是您最好的选择。