(02)Python+pypylonで産業用カメラ制御(GrabStrategyについて)

 2nd January 2023 at 11:20am

pypylonにおける撮像は以下のような流れで行われます。

pylon.InstantCamera.StartGrabbing():画像の取得を開始します。

pylon.InstantCamera.RetrieveResult():ストラテジー(手順)に従って撮像結果を取得します。

pylon.InstantCamera.StopGrabbing():画像の取得を停止します。

以下は例です。

    def grab(self, timeout=1000):
        ・・・
        self.camera.StartGrabbing(pylon.GrabStrategy_LatestImageOnly)
        grabResult = self.camera.RetrieveResult(timeout, pylon.TimeoutHandling_ThrowException)
        ・・・
        self.camera.StopGrabbing()
        ・・・

ストラテジーはStartGrabbing()で設定します。選択できるストラテジーの種類は以下の通りです。

pylon.GrabStrategy_OneByOne
・取得された画像は出力キューに順次保持されされます
pylon.GrabStrategy_LatestImageOnly
・最後に取得された画像(最新の画像)だけが出力キューに保持されます
pylon.GrabStrategy_LatestImages
・最後に取得された画像から指定した数の画像が出力キューに保持されます
pylon.GrabStrategy_UpcomingImage
・RetrieveResultメソッドが呼ばれてから画像が出力キューに保持され、取り出されます
・機種によっては対応していない場合もあるようです

あと、StartGrabbing()実行時にキューはクリアされます。

Pylonのインストールフォルダのサンプルを見てみると参考になります。


Homeへプログラミングの記事Topへ