画像アウトラインアルゴリズム

画像処理に関する最近の記事に照らして、輪郭アルゴリズムについて少しお話したいと思います。Roberts、Prewitt、Sobelメソッド(これらのメソッドは、最も有名でよく使用されるものとして考慮されています)。



ボリューム理論に煩わされることはありませんが、アルゴリズムの本質を理解するために必要な最小限の情報のみに限定します。

これらすべての方法は、輝度信号の不連続性の基本的な特性の1つに基づいています。 ギャップを検索する最も一般的な方法は、 フィルター、コア、ウィンドウ、またはテンプレートとも呼ばれる移動マスクを使用して画像を処理することです。これは、元の画像の指定されたピクセルのグループに対応する正方行列の一種です。 行列要素は係数と呼ばれます。 いくつかのローカル変換でこのような行列を操作することは、 フィルタリングまたは空間フィルタリングと呼ばれます



空間フィルタリングスキームを次の図に示します(図1を参照)。



画像

図1.空間フィルタリングスキーム



このプロセスは、フィルターマスクを画像内のポイント間で移動するだけです。 各ポイント(x、y)で、定義済みの関係を使用してフィルター応答が計算されます。 線形空間フィルタリングの場合、応答は、フィルターマスクで覆われた領域内の対応するピクセル値によるフィルター係数の積の合計によって指定されます。 図1に示す要素の3x3マスクの場合、画像のポイント(x、y)での線形フィルタリングの結果(応答) Rは次のようになります。



画像 (1.1)



ご覧のとおり、これはマスク直下のピクセル値によるマスク係数の積の合計です。 特に、係数w(0,0)f(x、y)にあり、マスクがポイント(x、y)の中心にあることを示しています。



明るさの違いを検出する場合、1次および2次の導関数の離散アナログが使用されます。 簡単にするために、1次元の導関数が考慮されます。



1次元関数f(x)の1次導関数は、隣接する要素の値の差として定義されます。



画像 (1.2)



ここでは、2つの変数f(x、y)の場合に同じ表記を維持するために、2つの空間軸に沿った偏微分を処理する必要があるため、偏微分の形式で表記を使用しました。 偏微分を使用しても、検討の内容は変わりません。



同様に、2次導関数は、1次導関数の隣接する値の差として定義されます。



画像 (1.3)



デジタル画像の一次導関数の計算は、2次元勾配のさまざまな離散近似に基づいています。 定義により、点(x、y)での画像勾配f (x、y)はベクトル[2]です。



画像 (1.4)



数学的分析の過程で知られているように、勾配ベクトルの方向は、点(x、y)での関数fの最大変化率の方向と一致します[2]。

輪郭の検出における重要な役割は、このベクトルのモジュールによって果たされます。このモジュールは、 ∇fで示され、



画像 (1.5)



この値は、点(x、y)での関数fの最大変化率の値に等しく、ベクトル∇fの方向で最大値に達します。 ∇fは 、勾配も呼ばれます。



勾配ベクトルの方向も重要な特性です。 点(x、y)でのベクトル∇fの方向とx軸の間角度をα(x、y)で示します。 数学的分析から知られているように[2]、



画像 (1.6)



ここから、ポイント(x、y)での輪郭の方向を簡単に見つけることができます。これは、このポイントでの勾配ベクトルの方向に垂直です。 また、各点の偏微分∂f/∂xおよび∂f/∂yを計算することにより、画像の勾配を計算できます。



ロバーツ演算子




下の図(図2を参照)に示されている3x3領域が、特定の画像要素の近くの輝度値を表しているとします。



画像

図2.画像内の近傍3x3



ある点で最初の偏微分を見つける最も簡単な方法の1つ 画像 次のRoberts交差勾配演算子[1]を適用します。



画像 (1.7)

そして

画像 (1.8)



これらの導関数は、前述のフィルタリング手順を使用して、図3のマスクで説明されている演算子を使用して画像全体を処理することで実現できます。



画像

図3.ロバーツ演算子マスク



2x2マスクの実装はあまり便利ではありません。 明確に定義された中心要素がないため、フィルタリングの結果に大きく影響します。 しかし、この「マイナス」は、このアルゴリズムの非常に有用な特性、つまり高速の画像処理速度を生成します。



プレウィット演算子




Prewittオペレーターは、R​​obertsオペレーターと同様に、図2に示す3x3の画像領域で動作し、そのようなマスクの使用のみが他の式で指定されます。



画像 (1.9)

そして

画像 (1.10)



これらの式では、3x3近傍の上下の行の合計の差はx軸に沿った導関数の近似値であり、この近傍の最初と最後の列の合計の差はy軸の導関数です。 これらの式を実装するには、図4のマスクで説明されているPrewitt演算子と呼ばれる演算子が使用されます。



画像

図4. Previttオペレーターマスク



ソーベル演算子




Sobelオペレーターは、図2に示す3x3の画像領域も使用します。Prewittオペレーターと非常によく似ており、変更は、中程度の要素に対して2の重み係数を使用することから成ります。



画像 (1.11)

そして

画像 (1.12)



この増加した値は、中間点により多くの重みを与えることにより、スムージング効果を減らすために使用されます。



Sobelオペレーターが使用するマスクは、下の図に表示されています(図5を参照)。



画像

図5. Sobelオペレーターマスク



上記のマスクは、勾配の成分を取得するために使用されます 画像 。 勾配の大きさを計算するには、これらのコンポーネントを一緒に使用する必要があります。



画像 (1.14)

または

画像 (1.15)



最後に、説明した方法を使用して画像処理の結果を示します(図6〜8を参照)。



画像

図6.元の画像番号1



画像

図7.元の画像番号2



画像

図8.元の画像番号3



Roberts、Prewitt、Sobelのメソッドによる処理結果を以下に示します。

画像

画像

画像

図9. Robertsメソッドによる処理後の元の画像



画像

画像

画像

図10 Prewittメソッドによる処理後の元の画像



画像

画像

画像

図11. Sobelメソッドによる処理後の元の画像



参照資料


  1. R.ゴンザレス、R。ウッズデジタル画像処理-M:Technosphere、2005-1007s
  2. クドリャフツェフL.V. 数学分析の短期コース-M。:Nauka、1989-736s
  3. アニシモフB.V. 認識とデジタル画像処理-M。:より高い。 学校、1983-295s



All Articles