本文へスキップ

モルフォロジー処理をCanvasで実装する―膨張・収縮・形態学的変換【画像処理100本ノック】

2

目次

  1. 概要
  2. 基本となる膨張と収縮
  3. 膨張と収縮を組み合わせる
  4. 差分から特徴を抽出する
  5. グレースケール画像への拡張q54q55
  6. まとめ

概要

Q.47〜55では、画素の近傍関係から形を整えるモルフォロジー処理を実装します。二値画像の 膨張・収縮を基本として、ノイズ除去、穴埋め、境界や小領域の抽出へ発展させます。

基本となる膨張と収縮

問題 処理 結果
Q.47 膨張 4近傍に前景があれば注目画素も前景にする 白い領域が広がる
Q.48 収縮 4近傍に背景があれば注目画素も背景にする 白い領域が縮む

実装では入力と出力を別のバッファにします。同じバッファを読み書きすると、先に更新した画素が 後続画素の判定へ混ざり、1回の処理で必要以上に領域が変化するためです。

膨張と収縮を組み合わせる

問題 処理順 用途
Q.49 オープニング 収縮→膨張 大きな形を保ちながら小さな前景ノイズを消す
Q.50 クロージング 膨張→収縮 前景内部の小さな穴や切れ目を埋める

繰り返し回数を増やすほど除去・補完できる領域は大きくなりますが、残したい形も変わります。

差分から特徴を抽出する

問題 計算 抽出するもの
Q.51 モルフォロジー勾配 膨張−収縮 物体の境界
Q.52 トップハット 原画像−オープニング 背景より明るい小領域
Q.53 ブラックハット クロージング−原画像 背景より暗い小領域

膨張・収縮の出力を最終結果にするだけでなく、原画像との差を取ることで、構造要素より小さい 特徴だけを取り出せます。

グレースケール画像への拡張(Q.54、Q.55)

二値画像では前景・背景の論理条件として説明できます。グレースケール画像では、膨張を近傍の 最大値、収縮を近傍の最小値として実装します。この定義を使えばトップハットと ブラックハットを濃淡画像へ適用できます。

まとめ

モルフォロジー処理はカーネルとの積和ではなく、近傍の最大・最小や前景・背景の接続を扱います。 膨張と収縮を部品として理解すると、オープニング以降の処理は「適用順」と「どの差を取るか」で 整理できます。

おすすめの記事

最新の記事

著者について

404

s-yoshiki

ただの備忘録です。

※外部送信に関する公表事項