2012-04-21 7 views
5

He clonado https://github.com/niw/iphone_opencv_test y trató de reemplazarproyecto OpenCV en el iPhone - tema edificio opencv.hpp

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

con

#import <opencv2/opencv.hpp> 

en OpenCVTestViewController.m archivo. Pero XCode arrojó siguiente error:

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" 

Por lo tanto, he tratado de eliminar la línea #include "opencv2/calib3d/calib3d.hpp" del archivo opencv.hpp. El siguiente error fue lanzado:

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

También he intentado cambiar .m a .mm, pero me pareció inútil. Donde estoy equivocado?

+0

puede probar este marco ... http://aptogo.co.uk/2011/09/opencv-framework-for-ios/ – Aravindhan

+0

@Aravindhanarvi gracias por su respuesta. Ya estoy usando el enfoque de este proyecto, pero solo quiero saber __why__ el enfoque del proyecto (publicado) no funciona. – user961912

Respuesta

3

Hay un conflicto entre las macros MAX/MIN de OpenCV y MAX/MIN de Cocoa. Lleva a errores extraños como este en tiempo de compilación. Para eludir este problema, puede: 1. agregar en la parte superior del archivo de encabezado predefinido 2. desacoplar por completo el código opencv y obj-c, de modo que no incluya ningún archivo .m/.mm. Esto se puede hacer, por ejemplo, usando boost GIL en el medio, o usando clases vanilladas personalizadas de C++ para pasar datos de imágenes desde marcos Cocoa a clases de procesamiento de imágenes opencv C++.

+0

¡Gracias, eso es lo que quería! – user961912

+0

¿Tiene algún tutorial sobre cómo usar boost GIL? –

+0

Este es complicado, creo que deberías hacer la pregunta en StackOverflow. Respuesta corta: no lo necesita si solo pasa punteros a los campos de datos, y si agrega la línea #import antes de la importación en el archivo .pch. – sansuiso