# CalibrateGrid

CalibrateGrid 関数は、ユーザ設定可能なキャリブレーショングリッドパターンを使用して、ピクセル座標系とワールド座標系間で変換を行うための 2D 変換を作成します。CalibrateGrid 関数では、線形や非線形の歪み、およびレンズ歪みも考慮されます。

## CalibrateGrid について

CalibrateGrid 関数は、チェッカボードキャリブレーショングリッドパターンの頂点によって識別される点のセット間の 2D 変換を計算します。解析中、CalibrateGrid 関数は、グリッドセルの交差点のピクセル位置を検出し、それらをグリッドパターンのモデルにマッピングし直します。

また、CalibrateGrid 関数は、キャリブレーションポイントとレンズ歪みモデルのセットに対する参照を使用して、画像座標系とワールド座標系の間の変換マッピングを計算します。

注 : 歪みのない画像上でビジョンツールを表示または使用する場合は、TransformImage 関数を使用します。

CalibrateGrid 関数を使用すると、次を設定できます。

- 使用するキャリブレーショングリッドパターンのタイプ。
- キャリブレーショングリッドパターンの間隔。
- 実世界のタイプ、物理測定単位。

キャリブレーションプレートグリッドを印刷することもできます (オプション)。詳細については、[グリッドの印刷] ダイアログを使用したキャリブレーションパターンの印刷を参照してください。画像が取り込まれると、CalibrateGrid 関数は可能な限り多くの特徴点を自動的に識別します。[キャリブレーション] ボタンをクリックすると、CalibrateGrid 関数は直ちにキャリブレーションの計算を開始し、特徴点の間隔に基づいたキャリブレーションポイントを返します。

キャリブレーションの実行が完了すると、キャリブレーションデータは [CalibrateGrid] セルに格納されます。これによって、CalibrateGrid 関数を 1 つのジョブからコピーして別のジョブに貼り付けたり、[セルのエクスポート] や [セルのインポート] を使用して外部ファイルとしてエクスポートおよびインポートしたりできます。さらに、必要であれば、各ジョブに異なるキャリブレーションを設定することや、1 つのジョブに複数のキャリブレーションを設定することもできます。Calibrate 関数を引数として使用する他の関数は、CaliateGrid データ構造体を参照することができます。

注 : Calibrate 関数を使用する場合、物理セットアップと光学セットアップ (レンズ、センサ、およびセンサとシーンの間の物理的関係) はキャリブレーション操作とランタイム操作の両方で同一にする必要があります。これらの項目を変更する場合は、システムをキャリブレーションし直す必要があります。キャリブレーションとランタイム画像の処理の両方で、同じセンサとレンズを使用することをお勧めします。センサとレンズでは、元のセットアップおよびキャリブレーション設定を変更しないようにする必要があります。例えば、解像度を変更したりセンサを移動したりすると、ピクセルをワールド座標系にマッピングする 2D 変換計算が不正になります。

## CalibrateGrid の入力

パラメータ | 説明
--- | ---
画像 | この引数は、有効な画像 データ構造体を含んでいるスプレッドシートのセルを参照している必要があります。デフォルトでは、セルは、 AcquireImage 関数によって返された Image データ構造体を含むセル A0 を参照しています。
フィクスチャ | Fixture入力、またはビジョンツール関数の画像座標系の出力に関連する対象領域 (ROI) を定義します。フィクスチャに関連する ROI を設定すると、フィクスチャが回転または移動した場合に、フィクスチャに対応して ROI を確実に回転または移動できます。 デフォルト設定は画像の左上隅で、(0, 0, 0) になります。
X (デフォルト = 0) | 画像座標での X オフセット。
Y (デフォルト = 0) | 画像座標での Y オフセット。
角度 (デフォルト = 0) | 画像座標系での画像の X 軸からの回転 (時計回り +/-360 度)。
領域 | これは対象領域 (ROI) とも呼ばれ、解析の対象となる画像の領域を表します。[領域] パラメータをダブルクリックすると、変換と回転が可能な対話型グラフィックスモードを作成できます。このパラメータを選択して、プロパティシートの [ジョブの編集] ツールバーにある [領域の最大化] ボタンを押すと、画像全体が対象になるように領域が自動的に拡張されます。
X | フィクスチャ座標での原点の X オフセット
Y | フィクスチャ座標での原点の Y オフセット
幅 | 領域の X 軸に沿った寸法。
高さ | 領域の Y 軸に沿った寸法。
グリッドタイプ | キャリブレーションの作成に使用するキャリブレーションパターンのタイプを指定します。[フィデューシャルつきチェッカボード]、[フィデューシャルなしチェッカボード]、[フィデューシャルつきドット]、または [フィデューシャルなしドット]
[フィデューシャルつきチェッカボード] | タイル頂点 (4 つのタイルの隅が接する点) は、特徴の位置の判定に使用されます。センサの表面に対する角度が 45 度以内になっていれば、頂点の位置を正確に検出することができます。また、グリッドの原点および実世界空間におけるグリッドの角度を識別するために、フィデューシャルマーカが提供されています。 注 : チェッカボードの格子の幅は、少なくとも 15 ピクセルにする必要があります。
[フィデューシャルなしチェッカボード] | タイル頂点 (4 つのタイルの隅が接する点) は、特徴の位置の判定に使用されます。センサの表面に対する角度が 45 度以内になっていれば、頂点の位置を正確に検出することができます。また、原点は [グリッドの原点] を使用して設定する必要があります。 注 : チェッカボードの格子の幅は、少なくとも 15 ピクセルにする必要があります。
グリッドの原点 | グリッドの原点を指定します。
中心 | [フィデューシャルつきチェッカボード] を選択すると、CalibrateGrid 関数は、領域の中心に最も近い原点を自動的に決定します。 [フィデューシャルなしチェッカボード] を選択している場合、[中心] ボタンをクリックするとこのチェックボックスをオフにできます。このチェックボックスをオフにすると、グリッドの原点を手動で決定することができます。グリッドの原点を手動で指定した場合、この原点は、指定した点に最も近い頂点となります。
X | ピクセル座標で原点の X 位置を指定します。 [フィデューシャルつきチェッカボード] を使用した場合、X 軸が自動的に決定されます。 [フィデューシャルなしチェッカボード] チェッカーボードを使用した場合、X 軸はグリッドの右に向かって大きくなります。
Y | ピクセル座標で原点の Y 位置を指定します。 [フィデューシャルつきチェッカボード] を使用した場合、Y 軸が自動的に決定されます。 [フィデューシャルなしチェッカボード] を使用した場合、Y 軸はグリッドの下方に向かって大きくなります。
注 : [グリッドの原点] パラメータは、[グリッドタイプ] に [フィデューシャルなしチェッカボード] を選択した場合にのみ編集可能です。[フィデューシャルなしチェッカボード] を選択した場合、いずれかの点を手動で選択して原点にすることができます。
Calibrate | CalibrateGrid イベントトリガ。
グリッド間隔単位 | 実世界の測定単位を指定します。キャリブレーションはこの単位に基づきます。デフォルトの単位はミリメートルです。 次の単位を選択することができます。 ミクロン ミリメートル センチメートル インチ
Xグリッド間隔 | X 軸上のキャリブレーショングリッドパターン間隔の実際の測定値。
Yグリッド間隔 | Y 軸上のキャリブレーショングリッドパターン間隔の実際の測定値。
角度範囲 | グリッドの検索に使用する開始および停止角度の範囲。
開始角度 | グリッド水平軸とカメラ水平軸の間の最小可能角度。 (最小 = -180、最大 = 180、デフォルト = -180)
終了角度 | グリッド水平軸とカメラ水平軸の間の最大可能角度。 (最小 = -180、最大 = 180、デフォルト = +180)
ヒント : 角度範囲の制限によって、グリッドとカメラの間の相対方向が分かっている場合にポイント抽出を高速化できる場合があります。
許容値 | 選択すると、[許容値] パラメータを有効にし、グリッドの検索に使用する角度範囲を制限できます。(デフォルト = 0、オフ)
レンズの歪み | ワールド座標系を画像座標系にマッピングするときに使用する線形または非線形のレンズ歪みモデル。
0 = レンズ歪みなし | 遠近歪みのみ考慮されます。
1 = 中央放射歪み | 画像の中心から発生する小さな放射歪みが考慮されます。
2 = オフセンター放射歪み | 画像の中心以外の領域から発生する放射歪みが考慮されます。
3 = 遠近歪み | 魚眼および広角レンズによって発生した歪みが考慮されます。
4 = 広範囲の歪み | 軽度から重度のレンズ歪みが考慮されます。
タイムアウト | CalibrateGrid 関数を実行する時間をミリ秒単位で指定します。タイムアウトを超えると、関数の実行が停止します。 最小値は 0、最大値は 9999999 です。デフォルト値は 120000 です。 注 : [タイムアウト] は、タイムアウトを超えたときに実行時間の長いプロセスを停止するためのフェイルセーフとして使用します。実行時間は指定された時間よりも 2、3 秒長くなることがあるため、きっかり [タイムアウト] の時間になるとは限りません。
表示 | 画像上の CalibrateGrid グラフィックスオーバレイの表示モードを指定します。
0 = 非表示 (デフォルト) | CalibrateGrid 関数を含んでいるセルがスプレッドシート内でハイライトされている場合を除き、すべてのグラフィックスが表示されません。
1 = 結果のグラフィックスのみ | 抽出された点の位置を入力画像に重ねて表示します。
2 = 入力と結果のグラフィックス | 抽出された点の位置とサーチ領域を表示します。

## CalibrateGrid の出力

戻り値 | 2 つの座標系間の変換を定義する係数を含む Calib データ構造体。

CalibrateGrid ワークフロー (フィデューシャルつきチェッカボード):

1. CalibrateGrid ツールをスプレッドシートにドラッグ & ドロップします。

   プロパティシートが表示されます。

2. [領域] パラメータをダブルクリックして対象領域 (ROI) を指定します。ROI の赤色の線をドラッグして領域を選択します。完了したら、Enter キーを押すか、[変更を確定する] をクリックします。

3. [グリッドタイプ] を指定します。この場合、[フィデューシャルつきチェッカボード] が選択されます。
4. [単位] を指定します。これは実世界の測定単位で、ワールド座標系はこの単位に基づいています。

5. [キャリブレーション] をクリックしてキャリブレーションをトリガします。

   キャリブレーションが完了すると、キャリブレーションされた点が ROI 内に表示されます。

6. [OK] をクリックします。Calib データ構造体が表示されます。

CalibrateGrid ワークフロー (フィデューシャルなしチェッカボード):

1. CalibrateGrid ツールをスプレッドシートにドラッグ & ドロップします。

   プロパティシートが表示されます。

2. [領域] パラメータをダブルクリックして対象領域 (ROI) を指定します。ROI の赤色の線をドラッグして領域を選択します。完了したら、Enter キーを押すか、[変更を確定する] をクリックします。

3. [グリッドタイプ] を指定します。この場合、[フィデューシャルなしチェッカボード] が選択されます。

4. グリッドの原点を手動で決定するかどうかを指定します。

   - 原点を手動で決定しない場合は、[中心] チェックボックスをオンにしたままにします。

   - 原点を手動で決定する場合は、[中心] チェックボックスをオフにします。X ボタンをダブルクリックし、原点を目的の位置にドラッグします。完了したら、Enter キーを押します。

5. [キャリブレーション] をクリックしてキャリブレーションをトリガします。

   キャリブレーションが完了すると、キャリブレーションされた点が ROI 内に表示されます。

6. [OK] をクリックします。Calib データ構造体が表示されます。