我是否可以在Linux上使用纯C从GigE相机获取图像的库?更具体地说,我有一台Basler GigE相机和安装了pylon软件。也有C++的示例代码。但是我想要并需要使用C(在我的工作中,这实际上是使用C的正确方法)。如果有类似libdc1394这样有用的东西只适用于GigE就太好了。
"GigE Vision" 实际上是一个计算机视觉相机标准,大多数相机也实现了用于调整参数的 Genicam 标准。至少这是理论 - 我有一台高速 GigE 相机,由于某些未知原因,Pylon 或 AVT 找不到它(官方只支持 Pleora 的 eBus)。你可能可以获得这些标准的规格说明,但我不确定它们是否免费提供。
关于库,我刚试过 Aravis 在 Ubuntu12.04 下工作正常(以 190 帧/秒流式传输 512x512 像素)。据我所知,它是用 C 写的。提示一下,要编译包含在内的 Viewer,您必须安装所有 gstreamer-dev 包,包括 libgstreamer-plugins-base0.10-dev。
因此,以下是您的一些选择(我能想到的)...
1)自己反向工程协议。这非常复杂,因此这将是一个大项目。
2)也许你会有运气,找到一家可以出售C版本SDK的公司?
3)使用C++ :-) (开个玩笑...)
4)向标准组织支付费用以获得访问权限,或与正在使用它的公司合作。
5)使用试图反向工程标准的开源项目。 (我不知道法律规定是什么)。例如:Aravis和OpenGigEVision。这些解决方案可能会有一段时间不完整,但至少应该支持基本功能。
如果您没有太多时间或金钱要花费,我认为#5是您最好的选择。