2012-02-04 5 views
8

マンゴーのクローズアップイメージを処理して、マンゴーを特定して数えることができるようにしたいと考えています。マンゴーは、おおまかに楕円形または楕円形であり、画像内の葉および枝とは一意的に異なる。私は他のオブジェクト(人間の目にはまだ明白です)によって20%覆われているかもしれないマンゴーを数えることができるようにしたいと思います。私はこれを行うことができるMatLabのアルゴリズムがあると信じています。形状認識計数マンゴー

+0

http://opencv.willowgarage.com –

+0

http://stackoverflow.com/questions/6307263/ellipse-detection-using-hough-transform –

答えて

4

この問題のよりロバストな解決策は、バックグラウンド(つまり木の葉)からマンゴーを色分けして、結果のバイナリイメージのconnected componentsの数を数えることだと思います。 btownが指摘しているように、bwconncomplabelmatrix関数を使用することで、バイナリイメージの接続コンポーネントを取得できます。

マンゴーを色分けするには、まず画像をHSV color spaceに変換し、色相成分を使用して2値化を行います。マンゴーの色相成分は画像の他の部分とは異なると私は信じている。 This blog postはMatlabでそれを行う方法についていくつかの洞察を与えます。おそらく、

+1

例はhttp://www.mathworks.com/です。 help/toolbox/images/ref/labelmatrix.html – btown

+0

@btwon質問の回答への推奨リンクを追加しました。 –

+1

カラーセグメンテーションの例については、[RGBイメージをグレースケールに変換することはできますが、1つのカラーを維持するにはどうすればいいですか?](http://stackoverflow.com/q/4063965/52738) – gnovice

1

あなたはできます

  1. プリプロセスイメージ(グレースケール/しきい値など)。
  2. すべてのcountours/connectedコンポーネントをバイナリイメージから抽出します。
  3. 各輪郭/連結成分の面積と周囲長を計算します。
  4. を用い形状係数/丸みを計算する:

形状因子 - (4 * PI *の面積)/(境界^ 2)。これにより、オブジェクトの形状の表示が になります。サークルは の周比で最大の領域を持ち、 真円の場合、この式は1の値に近づきます。正方形は約0.78です。細い糸状のオブジェクト は、最も近い形状係数が0に近づく。

丸み - (周長^ 2)/ 4 * PI *面積)。これは、それを使用するために使用される形状係数の逆数値 を与えます。 サークルの値は1よりやや大きい値になります。他の シェイプの値は増加します。

"理想的な"マンゴーのシェイプファクタを近似して、コンポーネントのいずれかが近似値の中にあるかどうかを確認できますか?

詳細はthisを参照してください。

+0

この特定の状況でシェイプメジャーを使用するといくつかのオブジェクト(マンゴー)が葉によって部分的に閉塞される可能性があるため、少し難しいです。 –

+0

True;不規則な「潜在的なマンゴー」輪郭の位置を考えて、色相情報を取得して戻って、不規則な形(不明瞭なマンゴー)を検証するためにこのアプローチを使用することができます。実際、検証のためにすべての輪郭に対してこれを行うことができます。あなたはどの色相値の範囲がマンゴーを前に思っているかを知る必要があります。あなたのアプローチに+1! – Jeb

関連する問題