3

こんにちは、MatLab を使用して内部に 4 つのオブジェクトを含む画像をフィルター処理しようとしています。私の最初の画像は黒い背景に白いオブジェクトがあったため、BW ラベルを使用してこれらの大きな白い部分を見つけて画像から分離することで、各画像を除外することは明らかでした。

ただし、次の画像にはノイズが含まれています。これで、オブジェクトに白い線が走っているイメージがあり、実際に互いに接続されています。MatLab でこれらの行を除外するにはどうすればよいですか? ごま塩ノイズはどうですか?これを行うことができるMatLab関数はありますか?

4

2 に答える 2

3

ノイズのフィルタリングは、いくつかの方法で実行できます。典型的なノイズフィルタリング手順は、しきい値>中央値フィルタリング>ぼかし>しきい値のようなものです。ただし、ノイズの種類に関する情報は、適切なノイズフィルタリングにとって非常に重要な場合があります。たとえば、画像に線があるので、ハフ変換を使用してそれらを検出し、プレイ(またはハフ線)から外すことができます。別のアプローチは、 RANSACを実装することです。ソルトアンドペッパータイプのノイズの場合、ノイズ特性をキャプチャする適切なウィンドウサイズのmedfilt2を使用する必要があります(たとえば、3x3ウィンドウは1ピクセルの大きさのノイズ変動にうまく対処します...)。

于 2012-09-27T01:27:20.987 に答える
1

オブジェクトを少し歪ませることができる場合は、コントラスト ストレッチを少し加えたクロージング (モルフォロジカル) フィルターを使用できます。画像処理ツールボックスが必要ですが、一般的な考え方は次のとおりです。

  • ぼかして線を消去しないと、フィルターを閉じるとオブジェクトが消去されます。fspecialを使用してガウス フィルターを作成し、imfilterを使用してそれを適用できます。
  • imcloseを使用して、ノイズよりも大きく、オブジェクトの断片よりも小さいマスクを使用して、クロージング フィルターを画像に適用します (この例では 3x3 のダイヤモンドを使用しました)。
  • すべてのピクセルが純粋な黒または純粋な白ベースに変わるように、im2bwを使用して画像にしきい値を設定します

学校のプロジェクトでやらなければならなかった例を添付しました。私の場合、背景は白、オブジェクトは黒で、浸食と膨張の間を引き伸ばしました。侵食後の灰色は実際には見えませんが、そこにはありました (したがって、しきい値処理が必要です)。

もちろん、直接クロージング (浸食と拡張) を行ってから、しきい値を設定することもできます。このフィルタリングによってオブジェクトがどのように歪むかに注目してください。

参考までに、通常、ごま塩ノイズは移動平均フィルターでクリーンアップされますが、画像はグレースケールのままになります。私のプロジェクトでは、純粋な白黒 (BW ラベル用) が必要でしたが、形態学的フィルターがうまく機能してノイズを完全に消し去りました。

モルフォロジー フィルタリングの例

于 2012-09-27T01:32:37.427 に答える