画像のテクスチャ検出と領域プロパティ


9

解決しようとしている興味深い問題があります。たとえば、2つのテクスチャ(AとB)を含む白黒画像がある場合、個々のテクスチャを完全にカバーする境界のピクセル値を知りたいと思います。

画像上のテンプレート(凡例)の位置のクラスターを与える相互相関を使用することを考えましたが、それを使用して境界のピクセル値を取得する方法はありますか(これらは通常不規則です)?また、これを行う他のより良い方法はありますか?

これの実際の例は、1年の3つのレベルの降雨を示すマップで降雨の領域を検出することです。各レベルには、凡例に存在するテクスチャが割り当てられ、同じ画像でのテクスチャマッチングに使用されます。


4
あなたが実際の例とあなたが試した、おそらくいくつかの予備の解決策を共有している場合には有用であろう
イヴォFlipse

3
あなたが何をしているのか理解できるように、いくつかのサンプル画像を確実にアップロードしてください。一部の領域が塗りつぶされ、他の領域がクロスハッチングされているように?nps.gov/sagu/naturescience/images/...
endolith

matlabがある場合は、画像処理ツールボックスを使用できます。そうでない場合でも、それらのWebサイトには、たとえば関数bwconncompなど、使用する可能性のある標準アルゴリズムの概要が示されています。
Mr. White

回答:


1

簡単なプロセスは次のとおりです。

  1. 画像の各領域にテクスチャ測定を割り当てます。
  2. 領域ラベル付け/接続性アルゴリズム(または領域拡張アルゴリズム)を使用して、同じテクスチャメジャーを持つ隣接領域を結合します。
  3. 単純なエッジ追跡アルゴリズムを実装して、各領域の輪郭をトレースします。

ローのテクスチャメジャーは古くはありますが、画像内のテクスチャを決定するための有用な手法であり、画像全体でテクスチャAとテクスチャBを区別するには十分な場合があります。ウィキペディアの記事の「法律テクスチャエネルギー測定」のセクションを参照してください。

http://en.wikipedia.org/wiki/Image_texture

最初のステップとして、すべてのテクスチャメジャーを計算し、特定のメジャー(エッジやスポットなど)を決定して、1つのテクスチャを他のテクスチャから最も簡単に区別できるようにします。(写真を投稿した場合、テクスチャメジャーを特定するのに役立ちます。)

AとBの2つのテクスチャしかない場合、それらを前景と背景として扱うことができ、標準の領域ラベル付けアルゴリズムが機能します。処理で何が起こっているかを簡単に確認できるように、Aテクセル(テクスチャエレメント、テクスチャの小さなチャンク)を白に割り当て、Bテクセルを黒に割り当てて、新しい画像を生成できます。次に、領域のラ​​ベル付けや輪郭追従のアルゴリズムが、接続されている白と黒の領域を見つけます。OpenCVのfindContours()関数はうまく機能します。

http://en.wikipedia.org/wiki/Connected-component_labeling

同じWikipediaの記事には、従来のマルチパスアルゴリズムとシングルパスアルゴリズムの両方が含まれています。ここで説明するシングルパスアルゴリズムは実装していませんが、ChenとChangによる論文「A Contour-Labeling Algorithm Using Contour Tracing Technique」で説明されているシングルパスアルゴリズムを使用しました。ChenとChangによる論文では、迅速に実装できる標準の輪郭追跡アルゴリズムについても説明しています。

テクスチャが3つ以上ある場合は、ウォーターシェッドまたは平均シフトアルゴリズムを使用して、テクスチャをカラーに再マップした後で領域をまとめてクラスタ化することができます。テクスチャからカラーへのこの再マッピングは必要ありませんが、プロセスのデバッグと理解が容易になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.