Calibration World Coordinates On Original Images

目的

目的は、各円の中心点間の距離を測定することです。

Input

円のキャリブレーショングリッドのいくつかの画像。

Output

キャリブレーショングリッド上の黒い円の検出された中心点とそれらの間の距離。

ヒント

黒い円は明確に見分けがつくため、それらを見つけて中心点を見つけ、ImagePointsToWorldPlaneを使用して整列するのが良いアイデアです。

Solution (AVS)

  1. EnumerateImagesフィルターを追加し、inDirectoryに画像のディレクトリを指定します。

  2. 新しいステップマクロフィルターを作成し、そこで中心点を見つけるアルゴリズムを作成します。これをFindCircleCenterと名前付けます。 outImageをその入力に接続します。

  3. マクロフィルターの内部に、ExtractBlobs_Intensityを追加します。以下の変更を行います:

  4. ClassifyRegionsフィルターを追加します。 outBlobsinRegionsに接続します。以下を設定します:

    • inFeatureCircularity_BoundingCirclePreservingに設定します。
    • inMinimum0.7に設定して、非円形のブロブをすべて拒否します。
  5. SortRegionsフィルターを追加します。 outAcceptedinRegionsに接続します。 inFeatureMassCenterYに設定します。

  6. RegionMassCenterフィルターを追加し、 outSortedRegionsinRegionに接続します。 outMassCenterをマクロフィルターの入力として outCenterに接続します。マクロフィルターを終了します。

  7. Mainに戻り、ImagePointsToWorldPlaneフィルターを追加します。 outCenterinImagePointsに接続します。

  8. プロパティウィンドウの左下にあるinTransform入力をクリックして、キャリブレーションエディターを開きます。オレンジで囲まれたボタンをクリックして、キャリブレーショングリッドの画像をロードします:

  9. ボードパラメーターを決定します:

    • 適切なキャリブレーショングリッドを選択します,
    • 寸法を指定します - キャリブレーショングリッドの幅と高さ,
    • 準備ができたら、Locateをクリックします。
  10. もしキャリブレーショングリッドの点が正しく配置されている場合、必要に応じてカメラパラメーターを調整することもできます。最終的にはCompute Camera Calibration Modelをクリックします:

  11. もしカメラキャリブレーションモデルが正常に計算された場合、Nextボタンをクリックします。このステップではImage to World Transformが計算されます。エディターに少なくとも1つの画像を追加します:

  12. これで、手動でポイントを入力するか、またはキャリブレーショングリッドを使用して自動的に行うことができます。この例では、他のオプションが示されています。準備ができたら、Locate...をクリックします:

  13. Originポイントを(0.00, 0.00)に設定し、X-axis pointを(200.00, 0.00)に設定して、原点セグメントを変更します。何も問題がなければ、Compute World Transformをクリックします。

  14. 計算が成功したら、Results & Statisticsタブが表示されます。 OKをクリックしてエディターを終了します:

  15. 次に、PointSequenceDistancesフィルターを追加し、outWorldPointsinPointsに接続します。このフィルターは、連続する円の中心点間の距離を測定します。もう一つPointSequenceDistancesフィルターを追加し、outCenterinPointsに接続すると、接続セグメントが表示されますが、実際の距離を反映しません。これは視覚化の目的でのみ表示されます。

マクロフィルタ メイン

マクロフィルタ FindCircleCenter

使用したフィルタ

アイコン 名前 説明
ClassifyRegions このフィルターは、領域の配列があり、その中からさらに処理する領域を選択したい場合に使用します。
PointSequenceDistances 点の系列の連続する点間の距離を測定します。
RegionMassCenter 領域のピクセルの平均座標に等しい座標を持つ点を計算します。
ImagePointsToWorldPlane 画像の点の世界座標を見つけます。
ExtractBlobs_Intensity 単一の値を使用して閾値処理を行い、画像をブロブにセグメント化します。
SortRegions 入力配列内の領域の順序を、計算された特徴値の昇順/降順に従って変更します。
EnumerateImages ディスクに保存された画像を使用して画像取得をエミュレートします。

その他の資料