ホーム
-------------------------------------------
Excel関数画像処理入門
   準備:画像の表示
   明るさ調整
   グレースケール
   ぼかす
   メディアンフィルター
   アンシャープマスク
   彩度調整
   平均色で塗り潰す
   モザイクをかける
-------------------------------------------
 空間フィルタ
   ローパスフィルタ
   ハイパスフィルタ
  エッジ検出
   ラプラシアンフィルタ
   プレウィットフィルタ
-------------------------------------------

Excel関数による画像処理入門(空間フィルタ:ラプラシアンフィルタによるエッジ検出)


 空間フィルタのカーネルを変更することで様々な画像処理を行うことができます。空間フィルタの計算方法については、空間フィルタ:ローパスフィルタのページで説明していますので、そちらをを参照してください。 このページではカーネルを変更し、エッジを検出するフィルタについて説明します。ラプラシアンのエッジ検出について見ていきます。ラプラシアンというのはこのフィルタを考えた人の名前だと思いますがよく知りません。

 ラプラシアンフィルタのカーネルは例えば以下のようなものがあります。



 基本的にはハイパスフィルタの説明のときに使用したエクセルをそのまま使用することにして【フィルタ】シートだけ書き換えます。 【フィルタ】シートを下図のように書き換えます。



 【編集中R】【編集中G】【編集中B】シートの内容はハイパスフィルタの説明のときと全く同じで構いません。



 【編集後R】【編集後G】【編集後B】シートの内容もハイパスフィルタの説明のときと全く同じです。 このあたりの意味合いはハイパスフィルタの説明のページを参照してください。



 各セルに入力されている式の詳細はサンプルファイルをダウンロードして確認してください。



 【編集後C】シートには以下の数式が入力されていますから、RGBの値を元に24ビットフルカラーの数値が表示されます。0が入力されてるセルが多いです。ラプラシアンフィルタではエッジ意外は黒になります。0のセルが多いのはそのためです。



 【編集後の画像を描く】マクロを実行します。



 マクロを実行したときに「実行時エラー'1004':セルの書式が多すぎるため、書式を追加できません。」というエラーが出る場合があります。 今回このエラーが発生し、【編集後画像】シートを一旦削除してやり直してもうまくいきませんでした。仕方がないので今回は【編集前画像】シートを削除してからマクロを実行しなおしました。 そのため今回のサンプルファイルには【編集前画像】のシートはありません。処理が複雑になってきてエクセルの画像処理はこのあたりが限界なのかもしれません。もっと小さな画像でやっていれば問題なかったのかもしれませんが。



 編集後の画像は下図のようになりました。次のページでプレウィットフィルタによるエッジ検出を説明するのですが、プレウィットフィルタと比較して全方向のエッジ検出ができることがラプラシアンフィルタの特徴です。



 編集前の画像が下図です。ラプラシアンフィルタで画像の輪郭が検出できました。


このページで作成したエクセルファイルのダウンロード