膨張・収縮・オープニング・クロージング

シェアする

  • このエントリーをはてなブックマークに追加
最近の記事
  • 7/6 【参考書籍】画像処理・機械学習プログラミング OpenCV 3対応
  • 6/20 【Python,matplotlib】動くグラフをAnimationGifに保存する方法
  • 6/17 シグモイド関数の微分
  • 6/15 シグモイド関数
  • 6/13 合成関数の微分
  • 6/12 WordPressで数式エディタ風に数式を入力したい
  • 6/11 PythonをVisual Studioでインストールする方法
  • 6/9 【Python】OpenCVをAnacondaでインストール(Windows編)
  • 6/6 【Python】Anacondaで複数バージョンの環境切り替え
  • 6/6 画像センシング展2017に出展します。
  • 6/1 【Office365】Web版Outlookのフォントサイズ変更
  • 6/1 【Anaconda】モジュールのアップデートでエラー発生
  • 6/1 【Anaconda】コマンドリストの表示
  • 5/29 Windows10パソコン購入
  • 5/24 Anacondaのアンインストール
  • 5/24 【Jupyter Notebook】新規プログラムの作成
  • 5/23 【Python】開発環境の構築
  • 5/23 Pythonはじめました
  • 4/6 【Office365】Web版Outlookのスレッド表示を解除する方法
  • 4/5 【Excel】フーリエ解析(FFT)
  • 3/20 Canny edge detection
  • 3/20 【Excel2016】分析ツールの表示
  • 3/5 【Visual Studio】黒い背景色を白に変更する方法
  • 2/8 【Windows10】拡張モニタに表示されたウィンドウを元に戻す
  • 2/7 複素数の計算
  • 1/18 【Excel】棒グラフの横軸の目盛を0始まりにする
  • 1/16 【Excel】フーリエ変換
  • 1/6 【OpenCV】疑似カラー(カラーマップ)
  • 11/8 【Visual Studio】検索結果のウィンドウ表示
  • 11/3 ニコン 一眼レフカメラ D5500レビュー
  • 10/26 カラーカメラはモノクロカメラを兼ねない
  • 9/6 (Free Soft)Animation GIF Builder
  • 8/30 【C#】タブの無いTabControlっぽいものを作る
  • 8/29 【OpenCvSharp】サンプルプログラムの公開
  • 8/28 【PowerPoint】部分的にカラーにする(セレクトカラー処理)
  • 8/27 【C#】引数の値渡し、参照渡し(ref, out)
  • 8/26 【Word/Excel】図形内に文字を挿入する
  • 8/25 【C#】NumericUpDownコントロール
  • 8/24 ニコン D3400 VS D5500 仕様比較
  • 8/22 【C#】MDIフォームにリサイズ可能なPanelを設置する
  • 8/20 【Visual Studio 2015】文字の色が変、かすむ
  • 8/20 【Visual Studio】行のコピー、切り取り、貼り付け
  • 8/20
  • 8/16
  • 7/7 標準偏差のよくある誤解
  • 6/17 ホーム
  • 6/15
  • 6/15
  • 6/15
  • 6/15

  • 膨張・収縮処理では一般的に二値化された白黒の画像に対して処理が行われ、

    注目画素の周辺に1画素でも白い画素があれば白に置き換える処理を膨張(Dilation)
    逆に周辺に1画素でも黒い画素があれば黒に置き換える処理を収縮(Erosion)といいます。

    【元画像】

    元画像

    【膨張処理】

    膨張処理

    【収縮処理】

    収縮処理

    二値化された画像ではなく、グレー画像に対して処理を行う場合は、膨張の場合、注目画素の近傍の最大輝度値を注目画素の輝度値に置き換えます。
    収縮の場合は最小輝度値に置き換えることでグレー画像に対して処理を行います。
    この処理を二値化画像と区別するために、それぞれ最大値フィルタ最小値フィルタと呼ぶ場合もあります。

    【処理例】

    元画像 膨張 膨張
    元画像 膨張 膨張
    膨張 収縮 収縮
    膨張 収縮 収縮
    収縮 収縮 収縮
    収縮 収縮 収縮
    収縮 膨張 膨張
    収縮 膨張 膨張
    膨張 連続処理
    膨張 連続処理

    膨張・収縮処理は単独で処理を行う事はまれで、膨張・収縮を繰り返し処理を行う場合が多くあります。
    とくに、同じ回数分だけ膨張して収縮する処理をクロージング(Closing)

    同じ回数分だけ収縮して膨張する処理をオープニング(Opening)とよびます。

    元画像 クロージング
    元画像 クロージング
    元画像 オープニング
    元画像 オープニング

    この処理例を見てもわかるように、オープニング、クロージング処理では小さいパターン細いパターンの除去を行います。

    さらに、クロージングした画像から元画像を差し引いた処理をブラックハット(Black-Hat)
    元画像からオープニングした画像を差し引いた処理をトップハット(Top-Hat)といいます。

    元画像 ブラックハット
    元画像 ブラックハット
    元画像 TopHat
    元画像 トップハット

    これらの処理を見ても分かるように、膨張・収縮処理を用いることで、欠け、断線、ホコリやゴミといった欠陥の検査や、細い線状のパターンの文字や線などの抽出への応用が考えられます。

    画像処理アルゴリズムへ戻る

    コメント