2012-11-23 19 views
6

私は、OpenCVのcv :: Matの経験があるC++ユーザーとしてブロブを試してみる予定です。OpenCVのブロブどのライブラリが最適ですか?

ここで問題は、どのblobライブラリを使用すればよいのでしょうか?

は、私がこれまでにこれらの選択肢を見てきました:

  1. ​​を - それはそれはC++に深刻な適応を必要とするので、IplImageでの作業、本当にCライブラリです。
  2. CvBlobsLib (on willowgarage opencv webpage) - これはC++ライブラリのように見えますが、説明のつかない、ほとんどのコード例が残っているかなり悪いドキュメントがあります。
  3. 私はOpenCV 2.4.3ライブラリでcv :: findContours、cv :: moments、およびcv :: drawContoursを見ました。

あなたは専門家として何をお勧めしますか?私の重大な問題:新しいOpenCVは、googleのコードでcvBlobをカバーしないものは何ですか?ここで


は、私はおよそSimpleBlobDetectorを尋ねる、このテーマに関するフォローアップの質問のためのリンクです。興味があるかもしれません。

答えて

5

OpenCV 2.4ではSimpleBlobDetector classを使用してください。あなたはかなりタイプのSimpleBlobDetectorのオブジェクトを作成し、入力としてcv :: Mat画像、キーポイントのための空ベクトル、および画像の特定の領域のためのオプションのマスクとして別のcv :: Matを使ってdetect(cv::Mat input, vector<cv::KeyPoint> keypoints, cv::Mat mask)関数を呼び出します

OpenCVの以前のリリースでは、cv :: Matオブジェクトは、以前は別々のイメージクラスと行列クラスのすべてに対してイメージと行列の格納を引き継いでいたことに注意してください。

+0

OK、この回答はエキサイティングです!私はそれを働かせることができるかどうか確信していません。私は次のような懸念を抱いています:これは、ブロブの中心を返すだけです。また、検出されたブロブの領域、凸状、色などの機能にどうやってアクセスできますか?私はそれを別の質問として掲示しなければならないと私は見てお約束しますか? :) –

+0

これは私のためのチュートリアルのクラスのように見えます。それほど成熟した概念ではありません。それはあまり拡張できません。 :(多分私はCBlob上でラッパーを実装して、オープンソースのどこかに入れます。 –

+0

[link](http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#keypoint) 'キーポイント'クラス(すなわち、検出関数の出力)には、検出された各ブロブの中心に加えて、直径としてのサイズが含まれます。また、SimpleBlobDetectorのコンストラクタでは、色、円形度、面積、凸性、および慣性。あなたは単に次のようにコンストラクタにこれらを入れます: 'SimpleBlobDetector myBlobDetector(bool filterByArea = true、float minArea = 10、float maxArea = 100);' – thealmightygrant

2

新しいopencvblobslibをご覧ください。マルチコアサポートのような素晴らしい機能があります。

+0

thx、+1(それ以上の文字が必要です) –

関連する問題