プログラム変数
Python 言語による各種の構成要素の実装について、その動作パラメータないしはオプション値を管理者に設定してもらいたい場合があります。例えば Python プログラムが通信で使用する IP アドレスやポート番号、URL や時間長などを、アプリの開始前に予め管理者に設定してもらいたい場合があります。プラットフォームには以下の2種類のオプション設定があり、管理ツールで設定した値を Python プログラムに伝えることができます。
オプション設定は、メディア系を除くすべての構成要素で定義可能で、[ 構成要素 ]-[ 設定 ]タブ内にあります。
位置情報オプション設定は、ビデオ解析の構成要素で定義可能で、[ 構成要素 ]-[ 解析]タブ内にあります。
管理ツールが「開発者モード」の時、これらのオプションの項目を定義、つまり追加したり削除したりできます。管理ツールが「管理者モード」の時は、開発者が予め定義したオプション項目の値を設定できる状態になっています。「管理者モード」の場合であって、オプション項目が一つも定義されていない場合は、「オプション」設定のタイトル自体表示されません。
オプションの定義
オプション設定の項目を定義するには、「開発者モード」の状態で、[ 構成要素 ]-[ 設定 ]タブを開き、スパナアイコンをクリックします。
「オプションの定義」ダイアログが表示されたら、左下の [+] ボタンを押し、プログラム変数の情報を入力します。
「変数名」とは、Python プログラム内での名前で、命名規則はプログラミング言語に依存します。「表示名」とは、管理ツール上で表示される設定項目の名前です。「ヘルプ」を記述すると、管理ツール上で表示される各設定項目毎に「?」マークが表示され、設定を行う際に内容を見ることが出来ます。
変数の「種類」として、以下が選択できます。
- ブール
- 数値
- 数値2つの配列
- 数値3つの配列
- 数値4つの配列
- パーセント値
- リスト選択
- 文字列
- テキスト
- RGB 色
「配列化して複数個の入力を許可する」チェックボックスをオンにすると、変数は「種類」で選択された型の配列になります。例えば変数の種類として「数値2つの配列」を選択し、チェックボックスをオンにした場合、Python プログラムに渡される変数値は以下のようになります。
[ [ 値1-1, 値1-2 ] , [ 値2-1, 値2-2 ] , [ 値3-1, 値3-2 ] , ... ]
位置情報オプションの定義
位置情報オプション設定の項目を定義するには、「開発者モード」の状態で「構成要素」タブを開き、構成要素の一覧にてビデオ解析の構成要素を選択した上で、[解析]タブを開き、スパナアイコンをクリックします。
「位置情報オプションの定義」ダイアログでは、以下の4種類の位置情報が定義できます。
- 矩形
- 線分
- 方向付き線分
- 座標
定義された位置情報オプションは、[解析]タブで[解析前]ボタンが選択された状態の画面で、表示されている画像内にオーバーレイで表示されている各項目のハンドルを直接操作することでも入力できます。
Python プログラムでのオプション変数の取得
開発者が定義し、管理者が設定したプログラム変数は、プラットフォームが一番最初に呼び出す Python プログラムの初期化関数__init__(self, sys, opt, log)
の opt 変数(オブジェクト)で与えられます。
制限事項
__init__( ) 関数内で、print(opt)
を実行すれば、全てのプログラム変数をコンソール画面に出力できますが、解析系の構成要素においては、__init__( ) 関数内で print( ) を実行しても、コンソール画面に出力されません。解析系の構成要素で print( ) を実行する場合は、__init__() 関数以外の関数内で行ってください。