指定されたライブラリは、コンピューターネットワーク経由で画像のペアを送受信するための機能を提供します。このライブラリの使用目的は、NerianのSceneScan Proセンサーシステムから出力データを受信することです。ただし、ライブラリには、イメージペアを送信する機能もあります。したがって、システム開発を実行するときにSceneScan Proをエミュレートしたり、ネットワーク画像入力を使用するときにSceneScan Proに画像データを送信したりするために使用できます。
画像は、8ビットまたは12ビットのビット深度で転送できます。ライブラリは、12ビットの画像を受信すると、より効率的な処理を可能にするために、画像を内部で16ビットに拡張します。モノクロおよびRGB画像がサポートされています。
SceneScan Proからデータを受信する場合、画像ペアの最初の画像は通常、左カメラの修正画像で、ビット深度は8または12ビットです。
2番目の画像は通常、サブピクセル解像度の視差マップであり、12ビット画像として送信されます。視差を正しいスケールで受け取るには、視差マップの各値を16で割る必要があります。
画像ペアを送受信するための3つの可能な方法があります。
- visiontransfer :: AsyncTransferは、画像ペアの非同期受信または送信を可能にします。 このクラスは、すべてのネットワーク通信を処理する1つ以上のスレッドを作成します。
- visiontransfer :: ImageTransferは、画像ペアを送受信するためのネットワークソケットを開きます。 このクラスはシングルスレッドであるため、データの送受信時にブロックされます。
- visiontransfer :: ImageProtocolは最も低レベルのインターフェースです。 このクラスにより、ネットワークメッセージとの間でイメージペアのエンコードおよびデコードが可能になります。 すべてのネットワーク通信を自分で処理する必要があります。
ネットワーク上の接続されたデバイスを検出するために、クラスvisiontransfer :: DeviceEnumerationを使用できます。これは、使用可能なデバイスをスキャンし、visiontransfer :: DeviceInfoオブジェクトのリストを返します。 そのようなvisiontransfer :: DeviceInfoオブジェクトは、visiontransfer :: ImageTransferまたはvisiontransfer :: AsyncTransferのインスタンス化に使用できます。
デバイスパラメータの読み取りと書き込みには、別のネットワークプロトコルが使用されます。 SceneScanデバイスの場合、このプロトコルはvisiontransfer :: SceneScanParametersによって実装されます。 デバイスが再起動されるか、ユーザーがWebインターフェースを介してパラメーターを変更すると、このプロトコルを介してパラメーターが変更されます。
このライブラリにはさらに、visionvision :: Reconstruct3Dクラスが含まれています。このクラスは、受信した視差マップを一連の3Dポイントに変換するために使用できます。
Available Examples
ファイル名 | 説明 |
---|---|
asynctransfer_example.cpp | visiontransfer :: AsyncTransferによる非同期転送のデモンストレーション。 |
imagetransfer_example.cpp | visiontransfer :: ImageTransferを使用した同期転送のデモ。 |
opencv_example.cpp | ImagePairをOpenCV画像に変換する方法を示します。 |
parameter_example.cpp | デバイスパラメータの読み取りおよび書き込み方法を示します。 |
pcl_example.cpp | 視差マップをPCL点群に変換する方法を示します |
server_example.cpp | SceneScan Proデバイスのように動作するサーバーを作成する方法を示します。 |