カテゴリ |
|
カメラのパラメータ(Feature)の取得・設定を行うには、CameraControlクラスを介して行います。
CameraControlクラスオブジェクトは、AcaPyクラスのcamera_controlプロパティにて取得します。
※AcaPy Ver.1.2.0において、パラメータの取得・設定が可能なのは、CoaXPressカメラ および アバールデータ製GigEカメラとなります。CameraLinkカメラの設定は、仮想COMポートを経由して、シリアル通信にて行います。
はじめに、カメラの幅の画素数(Width)の値を取得・設定するサンプルを示します。
import acapy # AcaPyクラス
# AcaPyクラスのインスタンス(初期値でBoardID=0, ch=1)
capture = acapy.AcaPy(0, 1) # CoaXPressボードのとき
# capture = acapy.AcaPy("GigE") # GigEカメラのとき
# CameraControlクラスオブジェクトの取得 camera = capture.camera_control
# カメラに設定されている値の一覧の表示 print(camera.get_camera_category_feature_text())
# 幅の画素数の取得 ret, camera_width, value_info = camera.get_value('Width')
# カメラの幅の画素数の設定 ret = camera.set_value('Width', 320)
# AcaPyクラスのプロパティをカメラに合わせて設定 capture.width = 320 capture.reflect_param() # 値の反映
|
カメラの幅、高さの設定は、カメラがPC側へ出力する画像サイズを設定します。
このサイズに合わせてAcaPyクラスの画像取得サイズをwidthプロパティ, heightプロパティ で設定する必要があります。
各種AcaPyのプロパティの値を変更した場合、最後にreflect_param()メソッドを実行してください。
◆ CameraControlクラスオブジェクトの取得
接続されているカメラパラメータ値の取得/設定はCameraControlクラスを介して行いますが、インスタンスされたCameraControlクラスオブジェクトはAcaPyクラスのcamera_controlプロパティにより取得します。
import acapy # AcaPyクラス
# AcaPyクラスのインスタンス(初期値でBoardID=0, ch=1) capture = acapy.AcaPy(0, 1)
# CameraControlクラスオブジェクトの取得 camera = capture.camera_control
|
これにより指定したボードID、Ch番号に接続されているカメラの制御が可能となります。
◆ カメラパラメータ値の取得・設定
カメラパラメータ値の取得、設定を行うには、CameraControlクラスの
値の取得は get_value()メソッド
値の設定は set_value()メソッド
を用います。
● get_value()メソッド
パラメータの名前(Feature)を指定して、カメラに設定されている値を取得します。
def get_value(self, value_name : str) ->(ret, value, value_info)
|
引数
名前 |
型 |
説明 |
value_name |
str |
パラメータの名前(Feature)を文字列で指定します。 |
戻り値
名前 |
型 |
説明 |
ret |
bool |
成功時: True 失敗時: False |
value |
|
取得したパラメータの値 |
value_info |
ValueInfo |
パラメータの詳細情報 |
● set_value()メソッド
パラメータの名前(Feature)を指定して、カメラへ値を設定します。
def set_value(self, value_name : str, value) -> ret
|
引数
名前 |
型 |
説明 |
value_name |
str |
パラメータの名前(Feature)を文字列で指定します。 |
value |
|
設定値 |
戻り値
名前 |
型 |
説明 |
ret |
bool |
成功時: True 失敗時: False |
◆ カメラパラメータ名(Feature)の確認
カメラに設定されているパラメータの一覧および設定値は、get_camera_category_feature_text()メソッドを使うと確認できます。
print(camera.get_camera_category_feature_text())
|
出力結果例の一部
(+)ImageFormatControl 'SensorWidth' Integer RO 4512 'SensorHeight' Integer RO 4512 'WidthMax' Integer RO 4512 'HeightMax' Integer RO 4512 'RegionSelector' Enumeration RW 'Region0' ['Region0'] 'Width' Integer RW 4512 [64 -> 4512 : Inc 16] 'Height' Integer RW 4512 [16 -> 4512 : Inc 16] 'OffsetX' Integer RW 0 [0 -> 3872 : Inc 2] 'OffsetY' Integer RW 0 [0 -> 0 : Inc 16] 'ReverseX' Boolean RW False 'ReverseY' Boolean RW False 'ComponentSelector' Enumeration RW 'Intensity' ['Intensity'] 'ComponentEnable' Boolean RO True 'ComponentIDValue' Integer RO 0 'PixelFormat' Enumeration RW 'Mono8' ['Mono8', 'Mono10'] |
1番目の列がパラメータの名前(Feature)の文字列となります。
2番目の列が設定値の型、種類です。
Integer |
整数型 |
Boolean |
ブーリアン(True, False) |
Command |
コマンド |
Float |
小数型 |
String |
文字列 |
Enumeration |
列挙型 |
3番目の列が設定値へのアクセス(読込、書込)となります。
4番目の列が設定値および、設定値の制限となります。
●設定値が Interger や Float の場合
'Width' Integer RW 4512 [64 -> 4512 : Inc 16]
のように表示されている場合、設定値が 4512、最小設定値が 64、最大設定値が 4512 かつ設定値が16の倍数であること。一般に
設定値 [最小値 -> 最大値 : Inc 倍数]
となります。
(設定例)
ret = camera.set_value('Width', 640)
|
●設定値が Boolean の場合
設定が可能なのは、 True もしくは False のみとなります。
(設定例)
ret = camera.set_value('ReverseX', True)
|
●設定値が Enumeration の場合
'PixelFormat' Enumeration RW 'Mono8' ['Mono8', 'Mono10']
のように表示されている場合、設定値は、カッコ内 [ ] の文字列のいずれかを指定してください。
(設定例)
ret = camera.set_value('PixelFormat', 'Mono10')
|
●設定値が Command の場合
Commandの値は指定せずに、 set_value() メソッドを実行してください。
(実行例)
ret = camera.set_value('UserSetSave')
|
パラメータの機能の詳細については、ご使用のカメラのマニュアルを参照ください。
◆ 関連記事
●仮想COMとは何ですか? また仮想COMはどのように設定すればよいですか?
●カメラリンクのカメラ設定はどのように行えばよいですか?
●AIPToolでカメラの設定変更を行うことはできますか?