■画像変換3:鮮鋭化とエッジ検出

 CCDカメラやスキャナ等の視覚センサを用いて画像の認識を行う場合は、その前処理として、コントラストの改善や画像の特徴線の抽出などの処理が重要です。
 ここでは画像の鮮鋭化と各種のエッジ(edge:物体の輪郭)の検出法を見てみましょう。

・数種類の画像を用意しています。次のような処理ができます。

 1.鮮鋭化: ぼやけた輪郭を鮮明にします<元画像の2次微分であるラプラシアンフィルタ使用>。

 2.エッジ検出: 画像中に表示された物体の輪郭や線を検出します。
   (1) 差分によるエッジ検出: 水平,垂直方向の1次微分である差分値による。
   (2) Roberts(ロバーツ)のエッジ検出: 斜め±45度方向の差分値による。
   (3) Prewitt(プレウィット)のエッジ検出: 水平,垂直方向の差分をとる画素数を増やし、
                                         さらに平滑化を高めたもの。
   (4) Sobel(ソーベル)のエッジ検出: Prewittの方法に若干修正を加えたもの。

 3.エンボス効果: 斜め45度方向の差分値に適当な定数を加えて、斜めから光を当てたような
                 浮き彫り効果を得るもの。
    スライドバー(あるいは マウスホイール)で、加える定数(濃度値)を設定できます。

・元のカラー画像を先ずモノクロ化し、その後上記の処理を行います。

[具体的な処理内容]

 参考までに、各処理の内容(計算式)を簡単に示します。
 画素(pixel)(i,j)の濃度値をf(i,j)とし、処理後の濃度値をg(i,j)とします。
 1.鮮鋭化
       g(i,j) = -f(i,j-1) - f(i-1,j) + 5f(i,j) - f(i+1,j) - f(i,j+1)
 2.エッジ検出
  (1)差分によるエッジ検出
       g(i,j) = sqrt[[f(i,j)-f(i-1,j)]^2 + [f(i,j)-f(i,j-1)]^2]
              ここで、sqrt : 平方根
                      ^2   : 2乗
  (2)Robertsのエッジ検出
       g(i,j) = sqrt[[f(i,j)-f(i-1,j-1)]^2 + [f(i-1,j)-f(i,j-1)]^2]
  (3)Prewittのエッジ検出
       g(i,j) = sqrt[[f(i+1,j-1)-f(i-1,j-1) + f(i+1,j)-f(i-1,j) + f(i+1,j+1)-f(i-1,j+1)]^2
                   + [f(i-1,j+1)-f(i-1,j-1) + f(i,j+1)-f(i,j-1) + f(i+1,j+1)-f(i+1,j-1)]^2]
  (4)Sobelのエッジ検出
       g(i,j) = sqrt[[f(i+1,j-1)-f(i-1,j-1) + [f(i+1,j)-f(i-1,j)]*2 + f(i+1,j+1)-f(i-1,j+1)]^2
                   + [f(i-1,j+1)-f(i-1,j-1) + [f(i,j+1)-f(i,j-1)]*2 + f(i+1,j+1)-f(i+1,j-1)]^2]
 3.エンボス効果
       g(i,j) = f(i,j) - f(i-1,j-1) + (一定値)
ホーム