OpenCV project on iPhone - opencv.hpp building issue

iphone, objective-c, opencv

Solution

There's a conflict between OpenCV's MAX/MIN macros and Cocoa's MAX/MIN. It leads to strange errors like this one at compile time. To bypass this problem, you can either: 1. add at the top of the pre-defined header file 2. totally decouple opencv and obj-c code, so that no .m/.mm file includes . This can be done for example by using boost GIL in-between, or using custom vanilla C++ classes to pass image data from Cocoa frameworks to opencv C++ image processing classes.

Problem

I've cloned https://github.com/niw/iphone_opencv_test and tried to replace ``` #import <opencv2/imgproc/imgproc_c.h> #import <opencv2/objdetect/objdetect.hpp> ``` with ``` #import <opencv2/opencv.hpp> ``` in `OpenCVTestViewController.m` file. But XCode threw following 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" ``` So, I've tried to remove the line `#include "opencv2/calib3d/calib3d.hpp"` from the `opencv.hpp` file. The error below was thrown: ``` iphone_opencv_test/opencv_device/include/opencv2/ml/ml.hpp:2075:10: fatal error: 'map' file not found [2] #include <map> ``` I've also tried to change .m to .mm, but it seemed futile. Where I'm wrong?

Original source