NeighborFilter

多目的関数の NeighborFilter は、各ピクセルが、「局所的な」画像強調技術 (縮小、拡大、塗りつぶし、平滑化、またはエッジ強度など) を入力画像または対象領域 (ROI) の一連の隣接するピクセル (「近傍」) に適用した結果であるグレースケール出力画像を生成します。一連のピクセルは、「処理近傍」と呼ばれ、形状は矩形で、[行数] および [列数] パラメータによって、それぞれ高さと幅が定義されます。NeighborFilter 操作の多くは、処理近傍内の特徴をその形状の特性に基づいて処理 (またはモーフィング) します。

:  
  • この関数は、In-Sight ファームウェア 4.x.x を実行している In-Sight ビジョンシステムでのみ使用可能です。In-Sight ファームウェア 5.1.0 以上を実行している In-Sight ビジョンシステムでは使用できません。モデル一覧およびサポートされているファームウェアバージョンについては、「ファームウェアバージョン」を参照してください。
  • In-Sight ファームウェア 5.1.0 以上を実行している In-Sight ビジョンシステムでは、この関数を Filter 関数に組み込みました。
  • In-Sight 5.1.x ファームウェアを実行中の In-Sight ビジョンシステムに、PointFilter 関数または NeighborFilter 関数が含まれたジョブをロードする場合に、その関数が [セルのフォーマット] ダイアログの [保護] タブを使ってパスワード保護されていると、ジョブのロードに失敗します。In-Sight ファームウェア 4.x.x を実行する In-Sight ビジョンシステムにジョブをロードして、ジョブを修正してください。パスワード保護されたセルのアクセスまたは削除の詳細については、「ライセンス」を参照してください。

NeighborFilterの入力パラメータ

Syntax:NeighborFilter(画像,フィクスチャ.行,フィクスチャ.列,フィクスチャ.角度,領域.X,領域.Y,領域.高さ,領域.幅,領域.角度,操作,行数,列数,表示)

画像 このパラメータは、スプレッドシートで画像データ構造体を含むセルを参照する必要があります。デフォルトでは、このパラメータは、AcquireImage 画像データ構造体を含むセル A0 を参照しています。また、このパラメータは、ビジョンツールのグラフィックス関数によって返された、そのほかの画像データ構造体も参照できます。
フィクスチャ

フィクスチャ入力、またはビジョンツール関数の画像座標系の出力に関連する対象領域 (ROI) を定義します。フィクスチャに関連する ROI を設定すると、フィクスチャが回転または移動した場合に、フィクスチャに対応して ROI を確実に回転または移動できます。

デフォルト設定は画像の左上隅で、(0, 0, 0) になります。

画像座標での行オフセット。
画像座標での列オフセット
角度 画像座標系での方位角
領域

これは対象領域 (ROI) とも呼ばれ、解析の対象となる画像の領域を表します。変換および回転可能な矩形の画像領域を作成します。このパラメータを選択して、プロパティシートのツールバーにある [領域の最大化] ボタンを押すと、画像全体が対象になるように領域が自動的に拡張されます。

X フィクスチャ座標での原点の X オフセット
Y フィクスチャ座標での原点の Y オフセット
高さ 領域の X 軸に沿った寸法。
領域の Y 軸に沿った寸法。
角度 フィクスチャ座標での角度。
:  [フィクスチャ] および [領域] パラメータは、画像の範囲内で定義されている必要があります。画像の範囲内で定義されていない場合、この関数は #ERR を返します。
操作

処理近傍で実行する操作を指定します。結果は、グレースケール出力画像で表示されます。一部の操作は、エッジを強調します。エッジは、ピクセルのグレースケール値が急激に変化する画像内の領域です。

0 = ボトムハット 「ボトムハット」フィルタ処理操作を指定します。この操作は、処理近傍のサイズより小さい暗い特徴以外のすべてを除去します。結果は、これらの暗い特徴が明るいピクセルで表示され、背景が暗く表示された出力画像になります。
1 = クローズ 「クロージング」操作を指定します。この操作はダイレーションの後にエロージョンを実行し、処理近傍のサイズより小さい暗い特徴を除去します。結果は、全体的な明度がわずかに高くなった出力画像となります。
9 = 畳み込み

「畳み込み」操作を指定します。この操作は、周辺ピクセルの値に基づいて、個々のピクセルの値を変更します。このパラメータは非常に柔軟に設計されているため、ユーザは、さまざまな結果 (カスタムローパスフィルタ、カスタムダイレーション操作など) を生成できます。

:  [カーネル] ボタンを押すと、[畳み込みフィルタのカーネル] ダイアログが開き、処理近傍の各ピクセル値の重みを指定できます。
2 = 膨張 「ダイレーション」操作を指定します。この操作は、明るい特徴を拡大し、暗い特徴を縮小します。結果は、明るいピクセルがより大きな領域を占める出力画像になります。暗い斑点の除去に有効です。
3 = エッジ強度 入力画像のダイレーションエロージョンの差を表示する操作を指定します。結果は、エッジが明るいピクセルで表示された出力画像になります。この操作は、勾配 全方向に似ていますが、より複雑な対角線方向のエッジを表現できます (ただし、より時間がかかります)。
4 = 収縮 「エロージョン」操作を指定します。この操作は、明るい特徴を縮小し、暗い特徴を拡大します。結果は、暗いピクセルがより大きな領域を占める出力画像になります。明るい斑点の除去に有効です。
14 = 黒穴埋め 明るいピクセルで囲まれた暗いピクセルを明るいピクセルに変換する「ピクセル塗りつぶし」操作を指定します。結果は、暗い穴が塗りつぶされた出力画像になります。
13 = 白穴塗りつぶし 暗いピクセルで囲まれた明るいピクセルを暗いピクセルに変換する「ピクセル塗りつぶし」操作を指定します。結果は、明るい穴が塗りつぶされた出力画像になります。
10 = 勾配 垂直方向 「垂直方向の傾斜」操作を指定します。結果は、垂直方向のエッジが明るいピクセルで表示された出力画像になります。
11 = 勾配 水平方向 「水平方向の傾斜」操作を指定します。結果は、水平方向のエッジが明るいピクセルで表示された出力画像になります。
12 = 勾配 全方向 「垂直方向および水平方向の傾斜」操作を指定します。結果は、垂直方向および水平方向のエッジが明るいピクセルで表示された出力画像になります。この操作は、エッジ強度に似ていますが、より簡易で (処理が早く)、対角線方向のエッジは表現しません。
5 = ハイパス 「ハイパス」操作を指定します。結果は、むらのないグレースケール勾配を持つ領域に対し、相対的にエッジが強調された出力画像となります。
6 = ローパス (デフォルト) 「ローパス」操作を指定します。結果は、エッジが「平滑化」された、またはぼやけた出力画像になります。
7 = オープン 「オープニング」操作を指定します。この操作はエロージョンの後にダイレーションを実行し、処理近傍のサイズより小さい明るい特徴を除去します。結果は、全体的な明度がわずかに低くなった出力画像となります。
8 = トップハット 「トップハット」フィルタ処理操作を指定します。この操作は、処理近傍のサイズより小さい明るい特徴以外のすべてを除去します。結果は、これらの明るい特徴が明るいピクセルで表示され、それ以外の背景が暗く表示された出力画像になります。
行数

処理近傍の高さ (1 ~ 25、デフォルト = 3) を指定します。

:  操作に [畳み込み] が選択されている場合、行数はピクセル単位でカーネルの高さを定義するために使用されます。
列数

処理近傍の幅 (1 ~ 25、デフォルト = 3) を指定します。

:  操作に [畳み込み] が選択されている場合、列数はピクセル単位でカーネルの幅を定義するために使用されます。
表示

画像の上に表示されるグラフィックスオーバレイを指定します。

0 = 非表示 (デフォルト) NeighborFilter 関数を含んでいるセルがスプレッドシート上でハイライトされている場合を除き、入力画像領域は表示されません。
1 = 結果のグラフィックスのみ 処理された画像が常に表示されます。
2 = 入力のグラフィックスのみ 入力画像領域が常に表示されます。

NeighborFilterの出力

戻り値

処理済みの画像を含んでいる画像データ構造体。入力パラメータが無効であれば #ERR を返します。

:   画像データ構造体にある処理済みの画像領域の内容は、ジョブとともに保存されることはありません。

NeighborFilter 関数の例

この例の目的は、NeighborFilter 関数の膨張操作を使用して、入力画像の連続した 5 つの数字の周辺にある黒い斑点を除去することです (下図)。

NeighborFilter 関数をスプレッドシートに挿入した後、プロパティシートで「領域」という単語をダブルクリックして ROI を定義します。画像の上に赤い ROI ボックスが現れます。カーソルを使用してボックスを移動するかサイズを変更し、[ジョブの編集] ツールバーにある [OK] ボタンをクリックし、選択を確定してプロパティシートに戻ります。Enter キーを押すか、ROI 内をダブルクリックすることで、選択を確定することもできます。

プロパティシートで [フィルタ種類] ドロップダウンメニューから [膨張 (Dilate)] を選択し、そのほかのパラメータについてはデフォルト設定を受け入れ、プロパティシートで [OK] をクリックしてこの例の設定を完了し、関数を入力画像に適用します。

下の 2 つの画像では、オリジナルの入力画像と新しい出力画像の両方が [文字照合/認識] ツールによって参照されています。このツールは、数字を「照合」し、結果の信頼性を示す各数字の得点を表示します。

オリジナルの入力画像 (ダイレーションなし) では、文字照合/認識の最高得点が 100.000 (数字「2」) で、最低得点が 82.154 (数字「1」) です。数字「1」は、文字照合のデフォルトのアクセプトしきい値 90 を下回っているため、テキスト文字列は照合に失敗します。

新しい出力画像 (ダイレーションを適用) では、黒い斑点の多くが数字の周辺から除去され、数字が読み取り易くなっています。文字照合/認識の最高得点は 100.000 (数字「8」) で、最低得点は 91.518 (数字「9」) です。すべての数字が文字照合のデフォルトしきい値 90 を上回っているため、テキスト文字列は照合に成功します。

数字が薄すぎる場合は、「収縮」操作を適用し、明るい特徴を縮小して暗い特徴を拡大することができます。