コンテンツにスキップ
ステージングサーバー
開発サーバー

画像取得#

このトピックでは、連続画像取得(コンティニュアス撮像)の設定方法と、グラブ戦略に関するアドバイスについて説明します。

コンティニュアス撮像#

このサンプルでは、次を使用して連続画像取得を設定する方法を示します。 LatestImageOnly グラブ戦略.

with pylon.InstantCamera(pylon.FirstFound) as camera:
    camera.StartGrabbing(pylon.GrabStrategy_LatestImageOnly)

    while camera.IsGrabbing():
        with camera.RetrieveResult(5000) as grab_result:
            if grab_result.GrabSucceeded():
                image = grab_result.Array

グラブ戦略#

グラブ戦略では、カメラがアプリケーションの処理速度よりも速い速度でフレームを生成する場合に、内部バッファキュー内で画像がどのように処理されるかを定義します。

簡単に言うと、アプリケーションが古い画像を処理している最中に新しい画像が到着した場合にどう処理すべきかという問題に対する答えになります。

一般的なグラブ戦略には、次の2つがあります。

  • LatestImageOnly:
    • 最新の画像のみが保持されます。
    • 古いフレームは破棄される場合があります。
  • OneByOne:
    • すべてのフレームがキューに入れられ、順番に処理されます。
    • フレームがドロップされることはありません(バッファオーバーフローが発生した場合を除く)。

どちらの戦略を使用すべきかを判断する際には、以下の点が参考になります。

  • 使用 LatestImageOnly 用途:
    • ライブ表示
    • GUI
    • 低遅延システム
  • 使用 OneByOne 用途:
    • 検査システム
    • 録画
    • 決定論的処理

トレードオフと内部動作の詳細な説明については、パフォーマンスの最適化のトピックを参照してください。

メンタルモデル#

Camera → [F1, F2, F3, F4]

LatestImageOnly:
                → Keep F4 only

OneByOne:
                → Process F1 → F2 → F3 → F4