Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

イメージの領域解析アプリを使用した、プロパティに基づくイメージのフィルター処理

この例では、既存のバイナリ イメージの領域のプロパティを条件にしてそのイメージをフィルター処理することで、マスク イメージなどの新しいバイナリ イメージを作成する方法を説明します。

バイナリ イメージを MATLAB® ワークスペースに読み取ります。

BW = imread('text.png');

MATLAB ツールストリップからイメージの領域解析アプリを開きます。[アプリ] タブの [イメージ処理とコンピューター ビジョン] セクションで [イメージの領域解析] をクリックします。

アプリのツールストリップで、[イメージの読み込み] をクリックしてから [ワークスペースからのイメージの読み込み] を選択し、ワークスペースからアプリにイメージを読み込みます。[ワークスペースからインポート] ダイアログ ボックスで、ワークスペースに読み取ったイメージを選択してから [OK] をクリックします。

また、関数 imageRegionAnalyzer を使用して、分析したいイメージ (imageRegionAnalyzer(BW);) を指定することで、コマンド ラインからアプリを開くこともできます。

イメージの領域解析アプリに、選択したイメージとテーブルが表示されます。このテーブルは、イメージで識別された領域を示す行と、領域の面積、周囲の長さ、方向などのプロパティを示す列からなります (イメージの領域解析アプリがイメージ内の領域を識別し、それらの領域のプロパティを計算する際、regionprops コマンドが使用されます)。

領域プロパティの値でフィルター処理するには、アプリのツールストリップで [フィルター] をクリックします。次に、フィルター処理したいプロパティを選択します。

次に、フィルター条件を指定します。たとえば、大きい領域だけを残して他はすべて削除したイメージを作成するには、"より大きいまたは等しい" の記号 (>=) を選択し、最小値を指定します。目的のプロパティの最小値を識別するために、そのプロパティでテーブル内の値を並べ替えることができます。このアプリでは、関数 bwpropfilt と関数 bwareafilt を使用して、バイナリ イメージをフィルター処理します。

別のプロパティでフィルター処理するには、[追加] をクリックします。プロパティの選択とフィルター条件の指定ができる別の行が表示されます。結果は 2 つのフィルター処理の共通部分 (論理 AND) です。

マスク イメージを作成する場合は、イメージ境界に接しているすべての前景ピクセルの削除や、オブジェクト内の穴の塗りつぶしなど、マスクのクリーンアップ操作をオプションで実行できます。穴を塗りつぶすとイメージ内の領域の面積を変えることができ、しきい値を下回っていたためにフィルター処理されていた部分が表示されるようになります。

イメージのフィルター処理が完了したら結果を保存できます。[エクスポート] をクリックして [イメージのエクスポート] を選択します。[ワークスペースにエクスポート] ダイアログ ボックスでマスク イメージの既定の名前を使うか、別の名前を指定します。[OK] をクリックします。

参考

| | |