カテゴリ |
|
AcaPyを用いた最小限のサンプルプログラムを以下に示します。
import acapy
import cv2
# AcaPyクラスのインスタンス
capture = acapy.AcaPy()
# capture = acapy.AcaPy("GigE") # GigEカメラのとき
# 画像入力ボードの設定
# GigEカメラのとき、load_inifile()は不要です。
capture.load_inifile("./AreaSensor_mono.ini")
# 画像取込
ret, frame = capture.snap()
# 画像表示
cv2.imshow("Image", frame)
cv2.waitKey()
# 解放 capture.release()
|
◆各コードの説明
●AcaPyクラスのインスタンス
【画像入力ボード(CameraLink, CoaXPress用)を使用する場合】
以下の部分で、AcaPyクラスをインスタンスし、画像入力ボードを使える状態にしています。
次に、使用するカメラに合わせて画像入力ボードを設定するため、設定ファイル(iniファイル)を読込ます。
iniファイルはAcapLib2と共通です。
capture.load_inifile("./AreaSensor_mono.ini")
|
【画像入力ボードを使用しない(GigEカメラ)場合】
AcaPyクラスのコンストラクタで"GigE"の文字を指定してインスタンスを行います。
capture = acapy.AcaPy("GigE")
|
※画像の幅、高さなどの設定は、カメラから取得するため、load_inifile()メソッドの実行は不要です。
●画像の取込
1フレーム分の画面を取得するにはsnap()メソッドを実行します。
ret, frame = capture.snap()
|
戻り値のretは、成功時1、失敗時0 になります。
frameが撮影した画像データ(NumPyのndarray)となります。
画像データのフォーマットはOpenCVと共通で、カラー画像のとき、B,G,Rのデータ順となります。
●解放
AcaPyクラスオブジェクトを使用しなくなったら、release()メソッドにより解放を行います。
◆関連記事
snap()メソッドは1枚の画像データを取り込む処理となります。
連続で画像を取り込む場合は、下記ページを参照ください。
連続画像取込(Grab)サンプルプログラム
◆サンプルプログラム
下記、リンクよりAcaPyを使ったサンプルプログラム一式を入手できます。
https://faq-avaldata.dga.jp/faq_detail.html?id=462