データ型
最初に読む: データフロープログラミングへの導入。
イントロダクション
整数、画像、または二次元の直線などは、データ型と呼ばれるものの例です。データ型は処理される情報の構造と意味を定義します。Aurora Vision Studioでは、型はプログラムの構築を案内する重要な役割も果たしており、環境は互換性のある型の入出力のみが接続されることを保証します。
プリミティブな型
Aurora Vision Studioでの最も基本的なデータ型は次のとおりです:
- Integer – 約 ±20億の範囲の整数(32ビット)。
- Real – 実数の浮動小数点近似(32ビット)。
- Bool – 論理値 – False または True。
- String – UTF-16 Unicodeとしてエンコードされた文字のシーケンス(テキスト)。
型の構築
Aurora Vision Studioで使用されるデータの複雑な型は、次のいずれかの構築物を使用して構築されます:
構造体
名前付きフィールドの固定された数から構成される合成データ。例えば、Point2D型は、2つの実数値フィールドXおよびYから構成される構造体です。
構造体の使用に関する詳細はこちら。
配列
同じ型の要素から構成される合成データ。 Aurora Vision Studioでは、任意の型Xに対応するXArray型があります(XArrayArrayも含む)。例えば、Point2D、Point2DArray、Point2DArrayArrayなどの型があります。
出力に配列を持つ例のフィルタ:
- ScanMultipleEdges – 複数のエッジポイントを見つけた配列を返します。
- SplitRegionIntoBlobs – 複数のブロブ領域を持つ配列を返します。
入力に配列を持つ例のフィルタ:
- Average – 複数の実数の平均を計算します。
- FitLineToPoints_M – 二次元の点の集合に最も適した直線を作成します。
配列の使用に関する詳細はこちら。
Optional
いくつかのフィルタの入力は接続せずに設定せずに残すことができます。これらはオプションの型と言われます。配列に関しても、各型Xに対応するオプションの型X*があります。特別な未設定のケースに対応する特別な値はAutoとされます。
オプションの入力を持つ例のフィルタ:
- ThresholdImage – Region型のinRoi入力をオプションとして持ち、領域を定義するために使用されます。 Auto 値が提供されると、画像全体が処理されます。
- FitLineToPoints_M – 直線フィッティングのいくつかの可能な強化を指定するinOutlierSuppression入力をオプションとして持ちます。 Auto 値が提供されると、いかなる強化も使用されません。
オプションの入力の使用に関する詳細はこちら。
条件付き
条件付きの型はオプションに似ていますが、その目的は異なります。条件付きの型では、通常"検出されていない"と読まれるNil値と共に、データが不足してフィルタの出力を表現し、それにより後続するフィルタの条件付き実行が行われます。各型Xに対応する条件付きX?型があります。
条件付きの出力を持つ例のフィルタ:
- SegmentSegmentIntersection – 2つのセグメントの共通点を返すか、そのような点が存在しない場合は Nil を返します。
- ReadSingleBarcode – バーコードから読み取った値を返すか、バーコードが見つからない場合は Nil を返します。
条件付きデータに関する詳細はこちら。
Enumerations
列挙型は、代替オプションの固定セットを表すためのものです。たとえば、DrawingMode型の値はHighQualityまたはFastに等しいことがあります。これにより、画像描画フィルタで品質と速度の選択が可能になります。
複合型
配列および条件付きまたはオプショナルな型を組み合わせることができます。その場合、名前は逆の順序で読まれます。例:
- IntegerArray? は「整数の条件付き配列」と読まれます。
- Integer?Array は「条件付き整数の配列」と読まれます。
上記の2つの型は非常に異なることに注意してください。最初の場合、数値の配列または配列が存在しない(Nil)可能性があります。2番目の場合、配列があり、各要素が存在するかどうかが問題です。
組み込み型
Aurora Vision Studioで利用可能な最も重要なデータ型のリストはこちら。
Angles
角度はRealデータ型を使用しています。これらと作業する際には、次の前提を考慮してください:
- 角度を扱うすべてのフィルタは、その結果を度単位で返します。
- 2つのオブジェクト間の測定のデフォルトの方向は時計回りです。一部の測定フィルタでは、これを変更することが可能です。
自動変換
変換という特別なカテゴリのフィルタがあり、これにより入力と出力を接続するための追加の可能性が定義されます。 XおよびYが特定の型名を表す場合、XToYという名前のフィルタが存在すると、型Xの出力から型Yの入力に接続を作成できます。たとえば、IntegerをRealに接続するか、RegionをImageに接続することが可能です。なぜなら、それぞれIntegerToRealおよびRegionToImageなどのフィルタが存在するからです。
変換フィルタは、基本的な操作が明確でパラメーター化されていない場合にのみ存在できます。
ユーザーフィルタを使用すると、さらにオプションを追加できます。