Linux でプレーン C を使用して GigE カメラから画像を取得するために使用できるライブラリはありますか? 具体的に言うと、Basler GigE カメラと pylon ソフトウェアがインストールされています。C++ のサンプル コードもあります。しかし、私は C を使用したいし、使用する必要があります (私の仕事では、これは実際にC を使用するための正しいことです)。GigEだけでもlibdc1394として何か役立つものがあればいいのですが。
3 に答える
「GigE Vision」は、実際にはコンピュータ ビジョン カメラの規格であり、ほとんどのカメラは、パラメーターを調整するための Genicam 規格も実装しています。少なくともそれが理論です-私は高速GigEカメラを持っていますが、何らかの理由でPylonまたはAVTによって検出されません(公式には、PleoraのeBusでのみサポートされています)。これらの規格の仕様を入手できるかもしれませんが、無料で入手できるかどうかはわかりません。
ライブラリに関しては、Ubuntu12.04 でAravisを試したところ、カメラで動作しました (190 フレーム/秒で 512x512 ピクセルをストリーミング)。私が知る限り、Cで書かれています。ヒントとして、含まれている Viewer をコンパイルするには、libgstreamer-plugins-base0.10-dev を含むすべての gstreamer-dev パッケージをインストールする必要があります。
Most implementations will use C++ and at best expose a c-api building on that because GenICam is a very complicated thing to implement - and the reference implementation works, is free and is used by nearly all SDK vendors. You can implement alot of the acquisition without that much in C but it is very difficult to cut GenICam out of the loop - this is because vendors have used GenICam XML documents as a sort of domain specific programming language/environment - the effort is comparable to implementing a web-browser from scratch.
Aravis does exist but depends on gstreamer and does seem to be mainly in C but it will only go so far on the complex XML support needed for many cameras. I'd never use gstreamer in a mission critical setting or where reliable operation is required in addition to where high performance or high efficiency is required. I believe the best option on the market is Pleora's SDK FYI - no relation. Having said that - I've written such a library (with C++ :-) which I cannot share to address problems I've mentioned.
GigE 標準はオープンソースにあまり適していません。標準化団体に年間ライセンス料を支払う必要があるため、GigE Vision を使用するほとんどのソフトウェアはかなりの金額がかかります。企業のグループが集まって標準を作成しましたが、すぐに世界に公開する可能性は低いです.
だからここにあなたのオプションのいくつかがあります(私が考えることができます)...
1) 自分でプロトコルをリバース エンジニアリングします。かなり複雑なので、大きなプロジェクトになるでしょう。
2) 運が良ければ、販売できる C バージョンの SDK を持っている会社を見つけることができるでしょうか?
3) C++ を使用してください :-) (jk...)
4) 標準化団体にお金を払ってアクセス権を与えたり、標準化団体に参加している会社と提携したりします。
5) 標準のリバース エンジニアリングを試みているオープン ソース プロジェクトを使用します。(合法性のルールが何であるかはわかりません)。例: Aravis、および OpenGigEVision。これらのソリューションはおそらくしばらくの間不完全になるでしょうが、少なくとも基本をサポートするはずです。
時間やお金があまりない場合は、5番が最善の策だと思います。