Array Element Iterator vTool#
Array Element Iteratorは、Array入力ピンを介して画像や領域などのさまざまなタイプの配列を受け入れ、内部の(0ベースの)インデックスでの位置に従って、対応するElement出力ピンを介して要素を出力します。これにより、配列の個々の要素に対して画像処理を実行できます。
Array Element Iterator vToolを使用するには、pylon Software Suiteをダウンロードしてください。

仕組み#
Array Element Iteratorを使用すると、データ配列の個々の要素を分離できるため、個々の要素に対して画像処理を実行できます。その後、Array Creator vToolを使用して、個々の要素を再び配列に戻すことができます。要素は、vToolの内部の0ベースのインデックスに従って処理されます。さらに、任意のデータをそのまま転送するように設定することもできます。これには、配列が参照する画像や領域、またはその他のデータが含まれます。
情報
複数の入力ピンが接続されている場合、すべての入力は同じデータソースから提供される必要があります。異なる独立した処理チェーンからの入力を接続することはサポートされていません。このような入力を組み合わせる必要がある場合は、Array Element Iteratorの前段にData Synchronizer vToolを追加して、入力データを同期させてください。
次のパラメータを使用できます:
- Number Of Array Pins: 入力できる配列の数を定義します。同じ数のElement出力ピンが作成されます。出力ピンには、入力配列のデータ型が適用されます(例:RectangleF配列を入力した場合、RectangleFデータ型の要素が出力されます)。
- Number Of Data Pins: 画像、領域、その他のデータを転送するためのData入力ピンの数を定義します。同じ数のData出力ピンが作成されます。データ項目は、次のvToolにそのまま転送されます。このパラメータはオプションです。
- Iteration Mode: 配列のすべての要素を反復処理するか、特定の範囲のみを反復処理するかを定義します。Rangeを選択した場合は、範囲の開始と終了を指定できます。
反復処理では、最大の入力配列のサイズが使用されます。All Elements反復モードでは、vToolは0からそのサイズから1を引いた値までのすべてのインデックスを反復処理します。range-based反復モードでは、設定された範囲内のインデックスのみが反復処理されます。範囲は最大の配列サイズにクランプされます。
vToolが入力配列の要素を反復処理する際、各要素をElementピンから出力し、対応するインデックス位置をIndexピンから出力します。複数の配列が入力され、他の配列よりもサイズが小さいなどの理由で配列内にインデックスが存在しない場合、その配列の出力には値が送信されません。LastIteration出力ピンは、反復処理の終了を示します。配列の最後のアイテムに達した場合はtrueを出力します。複数の配列が入力されている場合は、最大の配列の最後のアイテムに達したときにtrueを返します。
エラーハンドリング#
Array with errors: いずれかの配列入力ピンが配列レベルのエラーを含む配列を受け取った場合、反復処理は行われません。LastIterationはtrueを返し、Indexはエラー値を返し、ElementおよびData出力ピンにはデータが返されません。
Elements and data with errors: 有効な配列内のエラーがある要素や、データ入力ピンのエラーは透過的に転送されます。有効な値と区別されることはありません。
No array received: どの配列入力ピンも配列を受け取らなかった場合、処理は行われず、何も返されません。データ入力ピンのの値は無視されます。
No iteration: 受け取ったすべての配列が空であるか、設定されたインデックス範囲が配列の境界の外側にある場合、LastIterationはtrueを返し、Indexは返されず、データ入力値は無視されます。
vToolの設定#
Array Element Iterator vToolを設定するには、Workbenchでそれをダブルクリックします。利用可能なすべての設定が表示されたダイアログが開きます。または、Features - Allペインで同じ設定を見つけることもできます。
入力#
ArrayN#
反復処理の対象となる配列を受け入れます。最大100個の配列入力ピンを設定できます。
- データ型:任意の単純データ型の配列(Boolean、CircleF、EllipseF、Float、Image、Integer、LineF、PointF、RectangleF、Region、String、Transformation Data)
DataN#
各イテレーションステップで、変更を加えることなくあらゆるデータ(画像、リージョン、その他のデータなど)をそのままスルーさせます。最大100個のデータピンを設定できます。
- データ型:任意のデータ型
出力#
ElementN#
対応する入力配列の個々の要素を1つずつ返します。
- データ型:Array入力ピンに入力されたデータ型と同じ、つまり任意の単純データ型(Boolean、CircleF、EllipseF、Float、Image、Integer、LineF、PointF、RectangleF、Region、String、Transformation Data)
DataN#
各ステップで対応する入力に受信したデータ(画像、リージョン、その他のデータなど)を変更せずにそのまま返します。
- データ型:任意のデータ型
LastIteration#
配列の最後の要素に到達したかどうかを返します。最後以外のすべての要素に対してはfalseを返し、最後のイテレーションではtrueを返します。また、イテレーションが行われない場合(すべての配列が空である、最大配列よりも大きな範囲が指定されている、エラーのある配列を受信した場合など)もtrueを返します。
- データ型: Boolean
索引#
現在のインデックス位置を返します。いずれかの配列入力に配列レベルのエラーがある場合は、エラー値を返します。イテレーションが行われない場合は何も出力されません。
- データタイプ:整数