2012-04-21 14 views
5

ho clonato https://github.com/niw/iphone_opencv_test e provato a sostituireOpenCV progetto su iPhone - opencv.hpp problema edificio

#import <opencv2/imgproc/imgproc_c.h> 
#import <opencv2/objdetect/objdetect.hpp> 

con

#import <opencv2/opencv.hpp> 

in OpenCVTestViewController.m file. Ma XCode gettato seguente errore:

iphone_opencv_test/opencv_device/include/opencv2/opencv.hpp:55:10: fatal error: 'opencv2/calib3d/calib3d.hpp' file not found [2] 
#include "opencv2/calib3d/calib3d.hpp" 

Così, ho cercato di rimuovere la linea #include "opencv2/calib3d/calib3d.hpp" dal file opencv.hpp. L'errore di seguito è stato gettato:

iphone_opencv_test/opencv_device/include/opencv2/ml/ml.hpp:2075:10: fatal error: 'map' file not found [2] 
#include <map> 

Ho anche provato a cambiare .m a .MM, ma sembrava inutile. Dove mi sbaglio?

+0

puoi provare questo framework ... http://aptogo.co.uk/2011/09/opencv-framework-for-ios/ – Aravindhan

+0

@Aravindhanarvi grazie per la risposta. Sto già utilizzando l'approccio di questo progetto, ma voglio solo sapere perché l'approccio del progetto (che ho postato) non funziona. – user961912

risposta

3

C'è un conflitto tra le macro MAX/MIN di OpenCV e MAX/MIN di Cocoa. Porta a errori strani come questo in fase di compilazione. Per ovviare a questo problema, è possibile: 1. aggiungere nella parte superiore del file di intestazione predefinito 2. decodificare completamente il codice opencv e obj-c, in modo che non includa il file .m/.mm. Questo può essere fatto per esempio usando boost GIL in-between, o usando classi C++ vanilla personalizzate per passare i dati di immagine dai framework di Cocoa alle classi di elaborazione di immagini C++ opencv.

+0

Grazie, è quello che volevo! – user961912

+0

hai qualche tutorial su come usare boost GIL? –

+0

Questo è difficile, penso che dovresti fare la domanda su StackOverflow. Risposta breve: non è necessario se si passano solo i puntatori ai campi dati e se si aggiunge la riga #import prima di #import nel file .pch. – sansuiso