画像のシアリング

概要

ファイル: \examples\Processing\Geometry\ShearLine\LineShear_V02.va

デフォルトプラットフォーム: mE5-MA-VCL

簡単な説明

線形補間を使用したラインシアのサンプルです。

このサンプル(\examples\Processing\Geometry\ShearLine\LineShear_V02.va)では、ラインスキャンカメラ用のラインシアが実装されています。 カメラが対象物の意図されたスキャン方向に沿って取り付けられていない場合、この設計により、スキャンされた対象物の生じるシフト (図 328 を参照)を補正できます。この例では、画像幅全体(ここでは 1024 ピクセル)にわたって、y 方向に 10 ピクセルのラインシフトが選択されています。

カメラの取り付けのずれに起因するスキャン対象物の歪み

図 328:カメラの取り付けのずれに起因するスキャン対象物の歪み


図 329 に基本的な設計構造を示します。 カメラオペレーターからの 1D 画像の各ピクセルは、階層ボックス LineShear 内の x 座標に応じて y 方向にシア処理されます。単一のラインは、オペレーター SplitImage:2DImage を使用して 2D 画像に組み立てられます。補正された画像は、オペレーター DmaToPC を介して PC に送信されます。

基本設計構造

図 329:基本的な設計構造


図 330 に HierarchicalBox LineShear の内容を示します。 ここでは、各ピクセルに対して、先行する N-1 個のライン近傍(ここでは 31 個)が Nx1 カーネルに書き込まれます。

HierarchicalBox LineShear の内容

図 330:HierarchicalBox LineShear の内容


この列の各 8 ビットピクセルは、その前の次の近傍(オペレーター KernelRemap:ShiftedKernel によって検出)とマージされて、 1 つの 16 ビットピクセルになります。そのため、 図 331 の HierarchicalBox ExtractInteger の内容を参照してください。HierarchicalBox Select(図 332 を参照)では、シフト(補正)された整数 y 位置に応じて、オペレーター CASE を使用して各ピクセルの新しいピクセル値が選択されます。

HierarchicalBox ExtractInteger の内容

図 331:HierarchicalBox ExtractInteger の内容


HierarchicalBox Select の内容

図 332:HierarchicalBox Select の内容


各ピクセルの補正された y 位置は、HierarchicalBox TransformedYCoordinate で計算されます(図 329 を参照)。このボックスの内容を図 333 に示します。

HierarchicalBox TransformedYCoordinate の内容

図 333:HierarchicalBox TransformedYCoordinate の内容


オペレーター Coordinate_X を使用して、各ピクセルの x 位置が取得されます。負のスキュー勾配に対して x 位置を「反転」させる機能が存在します (オペレーター Const: NegativeSlope および IF で選択)。オペレーター CONST: DeltaX を使用して、カメラのずれが定義されます。この定数により、何ピクセル後に y 方向に 1 ピクセルのシフトを実行するかを決定します。オペレーター SelectBitField: Integer および SelectBitField: Fractional を使用して、すべてのピクセルの補正された y 座標の整数部と小数部が分離されます。この例では、6 個の小数ビット (オペレーター ShiftLeft:Mult64 を参照)が決定されます。各 y 座標の小数部は、ボックス ExtractFractional に含まれる HierarchicalBox Interpolation で実行される線形補間に必要です(図 330 を参照)。 補間アルゴリズムの詳細については、サンプル内の HierarchicalBox Interpolation のコメントを参照してください。 図 334 に、説明した操作の結果としての補正された画像を示します。

シフト補正された画像

図334:シフト補正済み画像