キーワードから探す

※スペースで区切って複数検索が可能です。

カテゴリで絞り込む

よく検索されるキーワード

ID:419
作成日: 2024/03/07

【AcaPy】カメラパラメータ値の取得・設定

カテゴリ AcaPy

カメラのパラメータ(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番目の列が設定値へのアクセス(読込、書込)となります。
RO 読込のみ
WO 書込のみ
RW 読み書き可

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でカメラの設定変更を行うことはできますか?

この内容は参考になりましたか?
ご回答いただきまして、ありがとうございます。
今後の参考にさせていただきます。
ご意見・ご感想、ありがとうございます。

関連するご質問

Now Loading...

Now Loading...