openCV 2.4.3 iOS Framework-Compiler erkennt einige C ++ - Header nicht richtig

openCV 2.4.3 / Xcode 4.5.2 / Mac OSX 10.8.2

Ich versuche, openCV mit iOS zum Laufen zu bringen. Ich versuche, das vorgefertigte 2.4.3-Framework von openCV.org zu verwenden. Ich erhalte jedoch die folgenden xcode-Projekterstellungsfehler, die darauf hindeuten, dass der Compiler nicht weiß, dass es sich um c ++ handelt, z

#include <list>       !'list' file not found

namespace cv          !unknown type name 'namespace'

Dies scheint nur die folgenden Header-Dateien zu betreffen:
"opencv2 / nonfree / features2d.hpp"
"opencv2 / nonfree / nonfree.hpp"
"opencv2 / video / video.hpp"

Wenn ich diese drei Dateien nicht in opencv.hpp (oder irgendwo anders) einbinde, kann ich offenbar openCV kompilieren und verwenden. Das Problem ist, dass ich die nicht freien Dateien benötige, da ich mit SURF experimentiere - das in letzter Zeit auf nonfree umgestellt wurde.

Das ist wirklich eine zweifache Frage (sorry ;-)

Wie kann ich den Compiler davon überzeugen, dass dies C ++ - Header sind?Welche Header brauche ich genau, um SURF zu verwenden?

aktualisieren

Ich habe das openCV-Git-Repository geklont und daraus ein neues Framework erstellt. Dieser Ansatz hat früher nicht funktioniert, aber heute habe ich festgestellt, dass ich nicht die aktuelle Version von CMAKE verwende. Ich hatte CMAKE 2.8.2 verwendet und dies konnte opencv für ios nicht erstellen. Die aktuelle Version CMAKE 2.8.10 erstellt es ohne Probleme (dies ist eine Lektion in Bezug auf das Befolgen der Dokumente, die besagen, dass CMAKE min. V2.8.8 erforderlich ist).

Wenn ich jetzt diesen aktuellen Build des opencv-Frameworks in ein Xcode-Projekt einbinde, kann ich ihn einbindenfeatures2d undNicht frei und bauen reibungslos. Das einzige Problem bleibt bei einem Header:video/background_segm.hpp, was noch ergibt:

#include <list>       !'list' file not found

Wenn ich kommentiereDas line out Ich erhalte eine Fehlermeldung in der nächsten Zeile:

namespace cv          !unknown type name 'namespace'

Es scheint klar zu sein, dass der Compiler dies nicht als C ++ - Header erkennt, obwohl er mit einem Suffix versehen ist.hpp.

Imopencv2/video/video.hpp wenn ich entferne

#include "opencv2/video/background_segm.hpp"

Ich kann mit bauenvideo.hpp auch (obwohl ich denke, dass es in der Praxis unbrauchbar wäre).

Leider kann ich SURF immer noch nicht zum Arbeiten bringen. Wenn ich das Projekt starte, stürzt es mit folgendem Fehler ab:

OpenCV-Fehler: Die Funktion / das Feature ist nicht implementiert (OpenCV wurde ohne SURF-Unterstützung erstellt)

Dies wird ausgelöst inlegacy/features2d.cpp:

   Ptr<Feature2D> surf = Algorithm::create<Feature2D>("Feature2D.SURF");
   if( surf.empty() )
        CV_Error(CV_StsNotImplemented, "OpenCV was built without SURF support");

Die Fragen bleiben ...

Wie kann ich den Compiler davon überzeugen?background_segm.hpp ist ein legitimer C ++ - Header?Wie aktiviere ich die SURF-Unterstützung?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage