Meter

目的

アナログ温度計から値を読み取ります。

Input

さまざまな温度値を示す温度計を備えた画像のセット。

Output

インジケーターが示す指示値。

ヒント

アナログインジケーターはベストタイムが遅れていきます。 ただしアプリケーションによってはインジケーターの交換に費用がかかる場合があります。この例では、このような種類のアナログインジケーターから値を取得する方法を示します。

この場合、1D Edge Detection技術を使用すると、メーターの針を簡単に見つけることができます。そのためには円形の走査経路上でスキャンを実行する必要があります。

接続のラベル付けについては こちらを参照ください。

Solution (AVS)

  1. ワークスペース エクスプローラーでワークスペース サンプルを開き、フィルム ストリップ ウィンドウでメーター データセットを選択します。 画像チャンネルを「ACQUIRE」セクションにドラッグします。
  2. スキャニングパスを作成します。CreateCirclePathフィルターを追加します。 そして、下の画像のように円入力を選択します。

    円の中心点がインジケーターハンドの取り付けポイント上にある必要があります。
    inPointCount645に設定します。下の画像は、選択された無効なポイント数を含むスキャンパスを示しています。

    下の画像は、正しいポイント数で作成されたパスを示しています。

  3. ScanExactlyNStripesフィルタを追加し、inStripeCount2をセットします。

    縞模様を検出した画像です。

  4. SegmentCenterを使って、縞模様の中心を取得します。

  5. GetSortedElementsを追加し、outStripes.WidthoutStripes.Countで、取得した中心を並べ替えます。

  6. outElement0Point1outElement1Point2というラベルを付けます。

  7. RealタイプoutValue出力をもつ、新しいEmpty formulaを作成します。

    outValue : Real? = (Segment2D(Point1, Point2).Direction - inRange.StartAngle) / inRange.SweepAngle * 160

マクロフィルタ メインはアナログインジケーターの値を見つけます。

使用したフィルタ

アイコン 名前 説明
ScanExactlyNStripes 対向するエッジの複数のペアを非常に高速に検出 (または存在検証) します。
CreateCirclePath 同一円の等距離点を含む閉じたパスを作成します。
SegmentCenter セグメントの中心点を計算します。
GetSortedElements 値の配列から 8 つの最小/最大値に対応する要素を返します。

その他の資料

  • 数式 - 数式の使用に関する詳細情報です。
  • Shape Fitting - シェイプ フィッティング テクニックの使用法を紹介します。