2011-12-02 6 views
6

私はComputer Visionが関わるプロジェクトをしたいと思っています。主にオブジェクト検出/識別。いくつかの研究の後、私はOpenCVに戻ってくる。しかし、すべてのチュートリアルは2008年のものです(それはちょっと大きかったと思います)。それは明らかにMacでPythonでコンパイルされません。私はXcodeからC++フレームワークを使用していますが、古くなっているため、チュートリアルは動作しません。OpenCVとコンピュータビジョン、ここではどこに立っていますか?

私がやっていることに対して、より良い解決策がありますか?誰にもOpenCVの使い方を習得するための提案はありますか?

おかげ

+0

O'ReillyのOpenCVブックをお試しください。 –

+0

リリース日:2008年9月** ** - 申し訳ありませんが、'08年のすべてのチュートリアルは機能しません。それ以来、枠組みが大きく変わったと私は信じています。そして、そのページのレビューから:「当時は本が良かったが、opencvが進んだので、もはや適用されなくなった。彼らは本を更新すべきだ」 – switz

+0

OpenCVソースコードの例を見てください。 – James

答えて

6

私はOpenCVを使い始めて同様の問題を抱えていましたが、実際にはこれを学ぶ上で最大のハードルです。ここに私のために働いた:

  1. この本: "OpenCV 2コンピュータビジョンアプリケーションプログラミングの本"。それは最も最新の本で、さまざまなコンピュータビジョンの問題を解決する方法の例があります(「Look Inside!」を参照して目次を参照してください)。私はOpenCVを簡単に使いこなし、ライブラリの仕組みに慣れました。

  2. 他の人が言っているように、サンプルは非常に有用です。書籍がスキップしたり、簡単にしかカバーしないものについては、通常、サンプルを見てより詳細な例を見つけることができます。また、本とサンプルの同じ問題を解決するさまざまな方法を見つけることもできます。

    vector<KeyPoint> keypoints;
    FastFeatureDetector fast(40); fast.detect(image, keypoints);


    しかし、あなたがしたい場合は、サンプル中にあなたが(はるかに柔軟な方法を見つけるだろう。たとえば、キーポイント/機能を見つけるために、この本は、FASTの機能を用いた例を示しています

    vector<KeyPoint> keypoints;
    Ptr<FeatureDetector> featureDetector = FeatureDetector::create("FAST");
    :検出アルゴリズムを使用するキーポイントの選択のオプションを)持っています3210 featureDetector->detect(image, keypoints);

私の経験から、物事は最終的にクリックして起動して、より具体的な質問のためにあなたがStackOverflowの上で右ここに最新のブログ上の情報やを見つけ始めます。

0

頭に浮かぶ最も簡単な答えは、理解のビットとサンプルコードを読み取るために、そしてあなたのアイデアが動作しているかどうかを試してみることです。 APIは変更され、ほとんどのチュートリアルはOpenCVの最初のバージョンのために書かれていて、誰もそれらを書き直す気にはならなかった。それにもかかわらず、その背後にあるコアアイデアは変化していません。したがって、あなたの質問に答えるチュートリアルがありますが、古いAPIで書かれたチュートリアルを見つけた場合は、使用されている機能の現代的な置き換えに関するドキュメントを参照してください。それは簡単ではなく、速いですが、うまくいくように見えます。最新(実際に2.3)のバージョンを使用している場合は、2.1 documntation 2.3 docs + tutorialsの両方を使用することをお勧めします。また、ライブラリの横にインストールする必要があるサンプルを調べる必要があります。ドキュメントに記載されていない特定の構造や技を使用する方法については、多くのヒントがあります。最後に、あなた自身でコンパイルした場合は、ライブラリ自体のコードを調べることを恐れないでください。残念ながら、私が知っている唯一のソースは、どのコードがMatオブジェクトのどのタイプに対応しているかを調べることです。

2

私はいくつかのことを追加しましょう。まず、OpenCVへのPythonバインディングがMac上で動作することを保証します。私は毎日使います。多くの理由のためのOpenCVのような

多くの人々:

  1. ライセンスが
  2. など、商用製品への統合に優しい、良いですがそれは技術的な観点からかなり良いです。これは、最先端のアルゴリズムのリファレンス実装を提供します。
  3. 代替(Matlab私はあなたを見ている)に比べてかなり速い傾向があります。人生のすべてと同様に

、それは完璧ではない:

  1. それは動く標的であるソフトウェア・ライブラリの良い例です。 私はOpenCVを使用する300行のPythonプログラムを持っていて、OpenCVの新しいバージョンがリリースされたときには数ヶ月ごとに 月になります。 を変更して、新しい関数名/呼び出し規則などに適応させなければなりません。 ライブラリは、しかし、同じプログラムを1年に3回変更する必要があるのは痛みです 。
  2. それはコンピュータ視覚そのもののように、学習曲線を持っています、それはかなり技術的であり、学ぶのは簡単ではありません。 です。

他の長所と短所がありますが、Image Processing Toolboxを使用したMATLABはこのような例の1つです。

関連する問題