構造体 F_EDGE_CORR_PARAMS
[2次元エッジ検出]
説明
相関エッジ用パラメータ構造体
相関エッジ用パラメータを指定するための構造体です。 本ページで相関エッジフィルタの概要と各種パラメータの設定方法を説明します。
- 相関エッジフィルタ概要
- 相関エッジフィルタは局所領域内の関数曲線(後述のシグモイド画像)を使用してエッジ強度を計測するフィルタです。 局所領域内の分散値も計測し、分散値がしきい値以上となる画素のみエッジ強度を求めます。
- シグモイド画像の例を図1に示します。 シグモイド画像はサイズ width × height の局所領域であり、 長さ方向の濃度プロファイルが図2のようなシグモイド関数
になるように構成されています。
図1. シグモイド画像(X方向)
|
図2. シグモイド関数
|
- このシグモイド画像を図3のように対象画像の注目画素にあてはめ、濃度分布の一致度を求めることでX方向のエッジ強度を取得します。
図3. 注目画素へのシグモイド画像のあてはめ
- シグモイド画像を図4のように90度回転させて同様の操作を行うことで、Y方向のエッジ強度も取得します。 X方向とY方向の結果を統合することで最終的なエッジ強度とエッジ方向を得ます。
図4. Y方向のシグモイド画像
構造体
相関エッジフィルタの長さ
相関エッジで使用する局所領域の長さ(幅)方向のサイズです。画素単位で設定します。 下図の W に相当します。
3以上255以下の奇数かつ height ≦ width となるように設定してください。 推奨値は 13 です。
- パラメータ決定方法
- 対象物の輪郭線が( width - 1 ) / 2 より小さい場合は、下図左のように線幅と( width - 1 ) / 2 が一致するように設定してください。 例えば文字のような細い線のエッジを抽出したい場合は太さに合わせて値を調節する必要があります。
正しい設定例
- ある程度幅のある対象物の場合は推奨値程度の値を設定してください(上図右)。
- 下図のように width が線幅を超えてしまうとエッジ強度が低下してしまいます。
誤った設定例
- 相関エッジフィルタでは下図のようにキズや汚れのような細い線のエッジ強度とある程度幅のある対象物のエッジ強度に差が生じます。 これによりエッジ強度のしきい値で対象物のエッジのみ取得することが可能となります。
効果的な使い方の例:キズや汚れ
相関エッジフィルタの高さ
相関エッジで使用する局所領域の高さ方向のサイズです。画素単位で設定します。 下図の H に相当します。
1以上255以下の奇数かつ height ≦ width となるように設定してください。 推奨値は 5 です。
- パラメータ決定方法
- 通常は推奨値を使用してください。 デジタル処理による誤差、およびビデオノイズによる誤差を軽減させたい場合には値を大きくしてください。 しかし値を大きくすると傾いているものに対してエッジ強度が低くなる傾向があります。 なお、フィルタ長さ width の値が推奨値から大きく変化している場合は、 width の3分の1程度に設定することも検討してください。
分散しきい値
相関エッジで使用する領域内の濃度分散値の下限値です。 領域内の濃度分散値が設定値を超えた場合にエッジであるとみなします。 ソーベルエッジでいう強度しきい値と同じ性質を持ち、対象となるマスターパタンと背景のコントラストによって値を調整します。
0より大きな値で設定してください。 推奨値と設定可能な上限値は次の表の通りです。
画像型 | 推奨値 | 上限値 |
F_IMG_UC8 | 25 | 16384 (= 2^14) |
F_IMG_S16 | 1638400 | 1073741824 (= 2^30) |
F_IMG_US16 | 1638400 | 1073741824 (= 2^30) |
F_IMG_DOUBLE | 画像の値域によって変化 | 上限なし |
※FPMの相関エッジでは F_IMG_UC8 のみに対応しています。
- パラメータ決定方法
- 画像内の対象物と背景の濃度差を計測し、何箇所か計測した中で最も濃度差の小さい値を以下の式に代入して採用してください。
- 分散しきい値 = (濃度差)2 / 4
- *注意* 濃度差計測では若干広めにとってしまう可能性が高いので、計測値より少し低めの値を式に代入することをお勧めします。
- 算出した分散しきい値を用いて、一旦エッジ抽出を行い、エッジが取れているかどうか確認してください。 以下の2つの状況に当てはまる場合は値を調節してください。
- 対象物のエッジは取れているが、ノイズからもエッジが出ている場合 → 大きくする
- ノイズからのエッジはないが、対象物のエッジも取れていない場合 → 小さくする
- 随時エッジ抽出を行い、エッジを確認しながら値を調節することをお勧めします。 対象物のエッジが消えない程度に分散しきい値の値を決定してください。
シグモイド係数
相関エッジに使用するためのマスター(シグモイド画像)となるシグモイド関数の形状を決める係数です。 値が小さい場合にはなだらかなモデル(ボケた画像)、値が大きい場合には急峻なモデル(2値的な画像)をマスターとします。
0より大きな値を設定してください。 推奨値は 1.0 です。
- パラメータ決定方法
- 通常は推奨値を使用してください。 ただし、対象物のエッジが鮮明な場合は10.0程度まで増加させることを、エッジがぼけている場合は0.1程度まで減少させることを検討してください。
強度しきい値
相関エッジで使用するエッジ強度の下限値(256倍値)です。 エッジ強度が設定値を超えた場合にエッジであるとみなします。 相関エッジの強度は一般的なエッジの強度とは考え方が違い、マスターとなるエッジモデル(シグモイド画像)との類似度を強度としています。
0以上255以下の値を設定してください。 推奨値は 160 です。
- パラメータ決定方法
- 通常は推奨値を使用してください。
- 以下のような場合に限り調節を行ってください。 随時エッジ抽出を行い、エッジを確認しながら値を調節することをお勧めします。
- 【局所領域内に対象のエッジ以外のものが含まれる場合】
局所領域内にキズや汚れなどのエッジ以外の濃度変化がある場合、エッジ強度が低下します。 このような状況の場合は、局所領域がキズや汚れに掛からないようにフィルタ長さ width を小さくするか、もしくは強度しきい値を小さくしてください。
非極大抑制のフィルタ片幅
非極大抑制処理(細線化処理)時のフィルタサイズ片幅です。画素単位で設定します。
1以上の値を設定してください。 推奨値は ( width - 1) / 2 です( width はフィルタ長さ)。
- パラメータ決定方法
- 通常は推奨値を使用してください。 正しいエッジ位置の近隣に余計なエッジが生じる場合には値を大きくしてください。