インタラクティブ画像微分

Scharr
勾配。

勾配はエッジそのものではありません。エッジを横切り、画像強度が最も速く増える方向を指す矢印です。

ここで見えること9 個の画素を変え、2 つの符号付き微分推定値が大きさ・方向・エッジ接線へ変わる様子を観察できます。

中心となる考え

一方の軸で平滑化し、他方で差分を取る

Scharr カーネルは分離可能です。Gx では 3:10:3 が縦方向を平滑化し、−1:0:1 が左から右への差分を取ります。Gy では役割が入れ替わります。

Kx = (1/32) [3, 10, 3]T[−1, 0, 1]

1/32 は演算子を較正します。厳密な線形ランプ I(x,y) = ax + b に対し、正規化後は Gx = a、Gy = 0 です。

なぜ Scharr か

方向による偏りが小さい

Sobel は垂直方向の重みに 1:2:1 を使います。Scharr の 3:10:3 は、エッジが画素格子の中で回転しても 3 × 3 微分の応答がより均一になるよう調整されています。

計算

成分から矢印へ

|G| = √(Gx² + Gy²)
θ = atan2(Gy, Gx)

atan2 は両成分の符号を保ち、正しい象限の方向を返します。

解釈

勾配は法線、エッジは接線

勾配は強度の等高線に垂直です。見えているエッジは θ + 90° の方向に走ります。画像座標では正の y は下向きで、上のダイヤルも同じ約束です。

信頼できる手順

結果を使う前の 4 つの確認

  • 符号付き浮動小数点で畳み込む。8 ビット出力では負の微分が失われます。
  • 実装が生の値を返すのか、32 で割るのかを明示する。
  • 画像境界のパッチに対する境界規則を明示する。
  • エッジ強度には大きさをしきい値処理し、方向は大きさが十分な場所だけで使う。