openCV 2.4.3 / Xcode 4.5.2 / mac osx 10.8.2
openCVをiOSで動作させようとしています。openCV.orgからビルド済みの2.4.3フレームワークを使用しようとしています。ただし、次のxcodeプロジェクトビルドエラーが発生します。これは、コンパイラがc++を処理していることを認識していないことを示しています。
#include <list> !'list' file not found
namespace cv !unknown type name 'namespace'
これは、次のヘッダーファイルにのみ関係しているようです:
"opencv2 / nonfree / features2d.hpp"
"opencv2 / nonfree / nonfree.hpp"
"opencv2 / video / video.hpp"
これらの3つのファイルをopencv.hpp(または他の場所)にインクルードしなければ、openCVokをコンパイルして使用できるようです。問題は、最近非フリーに移行されたSURFを試しているので、非フリーファイルが必要なことです。
これは本当に2つの質問です(申し訳ありません;-)
- これらがC++ヘッダーであることをコンパイラに納得させるにはどうすればよいですか?
- SURFを使用するために正確に必要なヘッダーはどれですか?
アップデート
openCV gitリポジトリのクローンを作成し、そこから新しいフレームワークを構築しました。このアプローチは以前は機能していませんでしたが、今日、私は現在のバージョンのCMAKEを使用していないことに気付きました。私はCMAKE2.8.2を使用していましたが、これではios用のopencvをビルドできませんでした。現在のバージョンのCMAKE2.8.10は、問題なくビルドできます(これは、CMAKE min。v2.8.8が必要であるというドキュメントに従うためのオブジェクトレッスンです)。
Xcodeプロジェクトにopencvフレームワークのこの現在のビルドを追加すると、features2dとnonfreeを含めて、スムーズにビルドできます。唯一の問題は、1つのヘッダーvideo/background_segm.hpp
に残ります。
#include <list> !'list' file not found
その行をコメントアウトすると、次の行でエラーが発生します。
namespace cv !unknown type name 'namespace'
接尾辞が付いていても、コンパイラがこれをC++ヘッダーとして認識しないことは明らかです.hpp
。
削除opencv2/video/video.hpp
すると
#include "opencv2/video/background_segm.hpp"
私も一緒に構築することvideo.hpp
ができます(実際には使用できないと思いますが)。
残念ながら、私はまだSURFを動作させることができません。プロジェクトを実行すると、次のエラーでクラッシュします。
OpenCVエラー:機能/機能が実装されていません(OpenCVはSURFサポートなしで構築されました)
これはでトリガーされlegacy/features2d.cpp
ます:
Ptr<Feature2D> surf = Algorithm::create<Feature2D>("Feature2D.SURF");
if( surf.empty() )
CV_Error(CV_StsNotImplemented, "OpenCV was built without SURF support");
質問は残っています...
background_segm.hpp
正当なc++ヘッダーである コンパイラを説得するにはどうすればよいですか?- SURFサポートを有効にするにはどうすればよいですか?