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

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

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

 

【元画像】

 

【膨張処理】

 

【収縮処理】

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

 

【処理例】

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

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

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

 

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

 

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

 

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

 

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

 

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

 

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