2021/05/21

2値画像の膨張・収縮②

はじめに

新人ムラ太
新人ムラ太

前回は「2値画像処理(膨張・収縮)」について学びました!
白画素領域を増減する処理でしたが、どんな効果があるか、いまいち分かりませんでした...

ノッキー先生
ノッキー先生

膨張して収縮、収縮して膨張など、処理を組み合わせると効果が分かりやすいと思うので、今回はその辺りを説明していくよ!

新人ムラ太
新人ムラ太

えっ!?収縮して膨張しても元に戻るだけじゃないですか??
ノッキー先生の得意技リバウンドと一緒で、良いことなんてないですよね?

ノッキー先生
ノッキー先生

いやー、得意技じゃないよ。減量は順調だよ!
それでは、膨張して収縮するクロージング処理と収縮して膨張するオープニング処理について説明していくよ!

クロージング・オープニング処理とは

クロージングとオープニングは、2値画像に対して前回の記事で紹介した膨張処理と収縮処理を複数回行う処理です。
2値画像にあるノイズや細い線などを除去する効果があります。

膨張・収縮_base_1

クロージングは、2値画像に対して数回の膨張処理を行った後、膨張処理と同じ回数の収縮処理を行う処理です。黒いノイズや黒い線を消すことができます。
図は膨張と収縮をそれぞれ1回ずつ組み合わせたクロージング処理の演算イメージです。

膨張・収縮_base_2

一方オープニングは、2値画像に対して数回の収縮処理を行った後、収縮と同じ回数の膨張を行う処理です。白いノイズや白い線を消すことができます。
図は収縮と膨張をそれぞれ1回ずつ組み合わせたオープニング処理の演算イメージです。

膨張・収縮_base_3

クロージング・オープニング処理をやってみよう

クロージング・オープニング処理を実施してみましょう。
「画像E」に、クロージングを実施した「画像G」は、白い部分の黒点が取れましたが白点は残りました。
オープニングを実施した「画像I」は、黒い部分の白点が取れましたが黒点と黒線は残りました。

膨張・収縮_sample_1
膨張・収縮_sample_2

そこで、「画像E」にクロージングを実施し、その結果にオープニングを実施します。
クロージング処理だけでは残っていた白点や、オープニング処理だけでは残っていた黒点、黒線が取り除かれ、綺麗なリンゴのシルエットが出来上がりました。

膨張・収縮_sample_3

最後に、2値化からの一連の処理を見てみましょう。
ノイズが多かった「画像M」がクロージングとオープニングを組み合わせたことでノイズ成分が除去され、綺麗な2値画像「画像P」に変換できました。

膨張・収縮_sample_4

まとめ

新人ムラ太
新人ムラ太

なるほどー、膨張と収縮を繰り返したらノイズや細い線が除去されるんですね!
元に戻るだけかと思ってました。

ノッキー先生
ノッキー先生

繰返しの回数を増やしたりカーネルを大きくすると、より大きなノイズもとれるようになります!
でも、繰返し過ぎは注意!除去したくないところまで影響して元に戻せなくなりますよ。

新人ムラ太
新人ムラ太

はい了解です。
ところで「画像K」はどこかで見たことあるマークですし、「画像L」にうっすら書いてある文字ってどんな意味なんですか?

ノッキー13
ノッキー先生

いいところに気が付いたね!
リンゴのマークはさておき、NVPはマクセルフロンティア自慢の画像処理装置だよ!よかったら製品紹介ページで確認してみてね!(あざとい…)

Point
  • クロージングは、膨張後に収縮を行う処理で黒いノイズや黒い線を除去できる

  • オープニングは、収縮後に膨張を行う処理で白いノイズや白い線を除去できる

画像認識ソリューションに関するご相談、ご質問は、下記フォームよりお問い合わせください。

Copyright Maxell Frontier Co., Ltd. All rights reserved.