ZMapの生成
Zmapは距離をグレースケール値としてコード化した基準平面上のポイントクラウドまたは基準面の投影です。
□ | ZMapsはすべてのOpen eVision2Dライブラリと互換性のあるグレースケール画像です。 |
□ | Zmapは歪みがなく、メトリック座標系からまたはメトリック座標系にアフィン変換されます。 |
深度マップ(左)およびそれに対応するZMap(右)、
デフォルトの生成パラメータと定義されていないピクセルの塗りつぶしが有効
すべてのOpen eVision2D処理は、ZMapで利用できます。フィルタリングと閾値処理、ブロブ抽出、EasyGaugeによる測定、EasyFindまたはEasyMatchとのモデルマッチングなどです。
EPointCloudToZMapConverterクラスはポイントクラウドまたはメッシュからZMapへの変換を実装します(EMeshToZMapConverterはメッシュからZMapへ変換します)。すべてのパラメータをデフォルト値にすると、Convertメソッドは投影面、方向、マップサイズ、および解像度を自動的に選択します。
必要に応じて、コンバージョンをさらに制御するいくつかの方法があります。
● | SetReferencePlaneはワールド空間投影面を定義します。Zmapピクセルの値はポイントクラウドからその基準平面までの距離です。 |
デフォルトでは、基準平面は原点を横断し、ワールドZ軸に対して垂直です。この平面はE3DPlaneオブジェクトとして定義されています。
● | SetOrientationVectorは、ZMapのX(幅)軸の予想される方向を表すワールドスペースベクトルを設定します。 |
方向ベクトルは、基準平面の法線の周りでオブジェクトを「回転」させることができます。
● | SetOriginは、ZMap左下のピクセル(0, 0)にあるワールド位置を指定します。 |
● | SetMapSizeは、生成されたZMapの解像度(X軸とY軸のピクセル数)を定義します。 |
● | SetMapXYResolutionは、ZMapピクセルのXY解像度を1ピクセルあたりのワールド空間単位(たとえばmm /ピクセル単位)で調整します。この値は、基準平面上のポイントクラウドの投影されたサイズに応じて、ZMapサイズ(幅と高さ)を計算するために使用されます。 |
● | SetMapZResolutionは、ピクセル単位のワールドスペース単位(グレー値)でZ解像度を設定します。Z解像度は、基準計画までの距離の整数8、16または32ビットピクセル値への変換を計算するために使用されます。 |
● | EnableFillModeおよびSetFillModeは、ZMapの「穴」を埋めるために使用されるオプションを制御します。ピクセル位置でZMapに3Dポイントが投影されていないときは穴が存在します。 |
SetReferencePlane、SetOrientationVectorおよびSetOriginメソッドは、ワールド空間とZMap空間の間の変換を設定するために使用されます。これは厳密な変換です(距離は保持されます)。
あるいは、リジッド行列をパラメータとして使用して、SetWorldToZMapTransformメソッドでその変換を直接設定することもできます。この場合、基準面、方向ベクトルおよび原点パラメータは無視されます。
ZMap上のポイントクラウドの投影は、
ワールド空間、ZMap空間、ピクセル空間の3つの座標系を示しています。
Convertメソッドは、8ビット、16ビットおよび32ビットZMapへのポイントクラウド()または3Dオブジェクト()の実効投影を実行しますEPointCloud。EMesh
ポイントクラウドからZMapを生成する場合、個々のポイントのみがZMapに投影されます。ポイントクラウド密度とZMap解像度に応じて、ZMapの一部の領域が「未定義」のままになることがあります。この問題を回避するには、ZMap(SetMapXYResolutionメソッド)の解像度を調整して、ZMapの「穴」を削除します。
デフォルトでは、ポイントクラウドからZMapへの変換は、塗りつぶしアルゴリズムを実行します。このプロセスは、未定義のピクセルをローカルに補間された値に置き換えようとします。
左:高解像度ZMap、ピクセルスケールがポイントクラウド密度を超えます
中央:同じジェネレータパラメータで充填が有効になっています
右:ZMapの縮尺/解像度が低く、充填されていません
メッシュがサーフェスを定義すると、その三角形がZMap平面に投影されます。その結果、生成された画像の連続性が向上し、未定義のピクセルが少なくなります。However, the generation of a ZMap from an EMesh is slower than from an EPointCloud.