質問: 画像のノイズ除去について matlabを用いて、画像処理を行っております。 bwareaopen() という関数を用いて、 50ピクセル以下のものを削除する、ノイズ除去を行っていました。 先日、ある画像を処理していると、以下のような、大きいノイズにあたってしまい、画像をうまく処理することができませんでした。 ノイズの大きさが、処理部分の大きさと同じくらいであるため、これまでの関数では除去することができませんでした。 どのような関数を用いると、除去することができるでしょうか。 よろしくお願いします。
回答: imopen関数はいかがでしょうか。白い領域をいったん縮小してから膨張させる処理となります。 見たところ、残したい領域は穴がない大きな塊になっていますが、消したい領域は中に穴があったりまばらな印象ですので、imopenであれば後者だけ狙って消去できそうです。 構造化要素はdiskで大きさは3くらいから大きくしてみてください。完全に消えないかもしれませんが、さらにそのあとbwareaopenに繋げれば良いかと思います。