7

OpenCvを使用してカメラの前に存在するオブジェクト(記念碑など)を認識するアプリケーションを開発し、その情報を表示したいと考えています。OpenCV for ANDROID画像比較

質問オブジェクト(記念碑または何かのような)形状を認識するか、OpenCVで画像と比較するにはどうすればいいですか?
これを行うための最良の方法は何ですか?

オブジェクトの検出と比較のためのサンプルやチュートリアルがあればいいです。

ありがとうございます。

+1

あなたが見たオブジェクト検出アルゴリズムは何ですか?まず、アプリケーションに最適なものを決定する必要があります。アルゴリズムに応じて、トレーニングデータを使用して、検出したいオブジェクトを最もよく表すモデルを定義する必要があります。コンピュータビジョンは非常に難しい作業領域であり、その領域をよく理解する必要があります。あなたはこれに新しい場合、私はいくつかの教科書を取得することをお勧めします。 – BDFun

答えて

6

たとえば、OpenCVのSIFT、SURF、ORBなどのローカル機能検出器を使用するのが最適な方法です。

検出するオブジェクトから少なくとも1枚の画像が必要です。その後、それらのアルゴリズムは、その画像を他の画像と比較して、それらが十分に類似しているかどうかを見ることができます。

ここではアルゴリズムのドキュメントです。

  • ORBその他:

http://docs.opencv.org/modules/features2d/doc/feature_detection_and_description.html

  • SURFとSIFT( 'nonfreeを'):

http://docs.opencv.org/modules/nonfree/doc/feature_detection.html

これらのアルゴリズムは、そのために働く方法タスクはselによるものです各画像の興味深い点を分析し、それらを比較して一致するかどうかを確認します。複数の一致が見つかった場合は、ほとんどの画像が同じオブジェクトを持っています。 (特徴検出と下から)

チュートリアル

http://docs.opencv.org/doc/tutorials/features2d/table_of_content_features2d/table_of_content_features2d.html

また、ここでは、このトピックに関連するC++サンプルを(サンプルはOpenCVのダウンロードパッケージ内にある)を見つけることができます

  • 例えば、 "matching_to_many_images.cpp"
  • "video_homography。CPP」

http://code.opencv.org/projects/opencv/repository/revisions/master/show/samples/cpp

そしてAndroidのJavaのサンプルここに(無関係にも役立つ):実際には、このためのより多くの更新なもので

http://code.opencv.org/projects/opencv/repository/revisions/master/show/samples/android

またはPythonのサンプルトピック(この投稿が書かれた時点):

http://code.opencv.org/projects/opencv/repository/revisions/master/show/samples/python2

最終的に、@ BDFunのように、コメントで述べたように、これは簡単ではありません。

その他 - OpenCV機能の検出と説明、check this postの概要が必要な場合。

+0

android NDKでopencv + androidを使う方法は? – nawara

+0

これをチェックしましたか? http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html#native-c –