サンプルプログラム

eGrabberのサンプルプログラムは、という専用のパッケージで提供されます。名前に含まれるはオペレーティングシステム(、、または)で、はパッegrabber-<OS>-sample-programs-<MA.MI.RE.BU>.<EXT>egrabber-<OS>-sample-programs-<MA.MI.RE.BU>.<EXT>egrabber-<OS>-sample-programs-<MA.MI.RE.BU>.<EXT>egrabber-<OS>-sample-programs-<MA.MI.RE.BU>.<EXT>egrabber-<OS>-sample-programs-<MA.MI.RE.BU>.<EXT>egrabber-<OS>-sample-programs-<MA.MI.RE.BU>.<EXT>

これらのサンプルプログラムは、デフォルトでCoaxlinkを使用しています。Gigelinkで使用するには、次のいずれかを行います。

環境にEURESYS_DEFAULT_GENTL_PRODUCER=gigelinkを定義する。
Gigelink()EGenTL コンストラクタに渡す。
サンプルプログラム 説明 言語 OS
cpp/egrabber eGrabberのコードスニペット C++ Windows、Linux、macOS
cpp/live 画像の取り込みと表示を示すWin32アプリケーション C++ Windows
cpp/egrabber-mfc 画像の取り込みと表示を示すMFCアプリケーション C++ Windows
cpp/amdDirectGMA 画像の取り込み、AMD GPUメモリへの直接転送、表示を示すOpenGLアプリケーション C++ Windows
cpp/nvidia/egrabber-cuda eGrabberを使用した画像の取り込みと、Nvidia GPUでCUDAを使用した処理を示すOpenGLコンソールアプリケーション C++ Windows、Linux
cpp/ffcWizard Coaxlink FFC(フラットフィールド補正)の係数の計算方法を示すコンソールアプリケーション C++ Windows、Linux、macOS
cpp/exif Coaxlink Quad CXP-12 JPEGの使用方法とEXIFファイルにメタデータを埋め込む方法を示すサンプルプログラム C++ Windows、Linux、macOS
cs/egrabber eGrabberと、C#でのコールバックの使用方法を示すコンソールアプリケーション C# Windows
cs/grabn 画像の取り込みを示すコンソールアプリケーション C# Windows
cs/live 画像の取り込みと表示を示すWindowsフォームアプリケーション C# Windows
cs/egrabber-wpf 画像の取り込みと表示を示すWPFアプリケーション C# Windows
python/sample* eGrabberのサンプルプログラム Python Windows、Linux、macOS
python/live numpy、opencv、Pillowなどで取り込んだデータを処理する方法を示す、eGrabberの追加サンプルプログラム Python Windows、Linux、macOS
vb/grabn 画像の取り込みを示すコンソールアプリケーション VB.NET Windows
vb/live 画像の取り込みと表示を示すWindowsフォームアプリケーション VB.NET Windows
その他のファイル 説明 言語 OS
tools/stripeGeometry.py StripeArrangement、StripeHeight、StripePitch、StripeOffset、およびBlockHeightの画像転送設定の効果を示すPythonスクリプト。 Python Windows、Linux、macOS

EGrabber C++コードスニペット

cpp/egrabberが含まれています。

スニペット 説明
100-grabn ScopedBufferクラスを使用したNフレームの単純な取り込み
110-get-string-list EGrabberのgetStringListメソッドの基本的な使用方法
120-converter FormatConverterの速度を測定
130-using-buffer Bufferクラスを使用したNフレームの単純な取り込み
140-genapi-command GenApiコマンドのクエリ
200-grabn-callbacks Nフレームを取り込み、コールバックでDataStreamイベントを取得
201-grabn-pop-oneof Nフレームを取り込み、pop(OneOf<>) でDataStreamイベントを取得
210-show-all-grabbers 利用可能なグラバーを表示
211-show-all-grabbers-ro 使用可能なグラバーを表示(DEVICE_ACCESS_READONLYでデバイスを開きます)
212-create-all-grabbers 利用可能なグラバーを作成
213-egrabbers EGrabbersで利用可能なグラバーを使用
220-get-announced-handles 公開されたバッファーの情報とハンドルを取得
221-queue-buffer-ranges 設定の異なる2つのバッファーを作成して使用
230-script-vars ネイティブコードとEuresysスクリプト間でデータを渡す
231-script-var ネイティブコードとEuresysスクリプトから仮想機能を作成して使用
240-user-memory ユーザーが割り当てたバッファーへの取り込み
250-using-lut LUTプロセッサーを設定して有効にする
260-egrabber-recorder Recorderコンテナへのバッファの書き込みとバッファの読み取り
261-recorder-parameters Recorderパラメーターを表示する
300-events-mt-cic EGrabberマルチスレッド構成でのCICイベント
301-events-st-all EGrabberシングルスレッド構成でのすべてのイベント
302-cxp-connector-detection 接続とデバイス検出に関連するCoaXPressイベントを表示
310-high-frame-rate 10秒間の高フレームレートモードでの取り込み
311-high-frame-rate 10秒間の高フレームレートモードで画像を利用できるようになった時点で処理する
312-part-timestamps HFRモードで、各バッファパートのタイムスタンプを表示する
360-recorder-async-write EGrabberのコールバックを使って、Recorderコンテナに非同期で書き込む
361-recorder-async-write-mt EGrabberのマルチスレッド構成を使って、Recorderコンテナに非同期で書き込む
500-grabn-cuda-process Nフレームを取り込み、cuda演算で処理
501-all-grabbers-cuda-process 利用可能なすべてのグラバーを使用してNフレームを取り込み、cuda演算で処理
610-line-scan-array EGrabberシングルスレッドを使用したラインスキャンの(連続)バッファー配列
620-multiple-camera すべてのカメラのデータの取り込み
630-sublink 同じPC上にある2つのサブリンクグラバーのバッファーをマージ
640-mitsubishi-kd6r807cx 1つの三菱KD6R807CXに接続された2つのグラバーのバッファーをマージ(memcpy演算)
641-mitsubishi-kd6r807cx 1つの三菱KD6R807CXに接続された2つのグラバーのバッファーをマージ(DMA)
650-multistream 同じデバイスにある4つのデータストリームのデータを取得(Coaxlink Quad G3の「1カメラ、4データストリーム」ファームウェアバリアント上)
660-phantom ファントムストリーマー16 CXP6に接続された利用可能なグラバーのバッファーをマージ

EXIFサンプルプログラム

cpp/exifには次の情報が含まれています。

サンプル 説明
100-jpeg-exif 4つのJPEGエンコードデータストリームからデータを取得し、EXIFファイルを生成
200-jpeg-preview-exif 4つのプレビューと4つのJPEGエンコードデータストリームからデータを取得し、サムネイル付きのEXIFファイルを生成

eGrabber Pythonサンプルプログラム

サンプル 説明
live-capture-opencv フレームを取得してRGB8に変換し、opencvおよびnumpyを使用してAVIファイルを生成
live-numpy-opencv 取得したMono8データからnumpy配列を作成し、配列を転置し、OpenCVを使用して画像を表示
live-tkinter-pillow Pillowの輪郭フィルターで処理された取得画像を表示するtkinterのシンプルなアプリケーション
live 画像の取り込みと表示
sample100 ScopedBufferクラスを使用したNフレームの単純な取り込み
sample120 C++ 120-Converter eGrabberサンプルプログラムのPythonバージョン
sample130 手動のバッファ管理による単純なNフレームの取り込み
sample140 GenApiコマンドのクエリ
sample200 Nフレームを取り込み、コールバックでDataStreamイベントを取得
sample210 利用可能なグラバーを表示
sample310 10秒間の高フレームレートモードでの取り込み