iPhone上的OpenCV项目 - opencv.hpp建设问题

use*_*912 5 iphone opencv objective-c

我克隆了https://github.com/niw/iphone_opencv_test并试图替换

#import <opencv2/imgproc/imgproc_c.h>
#import <opencv2/objdetect/objdetect.hpp>
Run Code Online (Sandbox Code Playgroud)

#import <opencv2/opencv.hpp>
Run Code Online (Sandbox Code Playgroud)

OpenCVTestViewController.m文件中.但是XCode提出了以下错误:

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"
Run Code Online (Sandbox Code Playgroud)

所以,我试图#include "opencv2/calib3d/calib3d.hpp"opencv.hpp文件中删除该行.抛出以下错误:

iphone_opencv_test/opencv_device/include/opencv2/ml/ml.hpp:2075:10: fatal error: 'map' file not found [2]
 #include <map>
Run Code Online (Sandbox Code Playgroud)

我也尝试将.m更改为.mm,但这似乎是徒劳的.哪里我错了?

san*_*iso 3

OpenCV 的 MAX/MIN 宏和 Cocoa 的 MAX/MIN 之间存在冲突。它会在编译时导致像这样的奇怪错误。要绕过这个问题,您可以: 1. 在预定义头文件的顶部添加 2. 完全解耦 opencv 和 obj-c 代码,这样任何 .m/.mm 文件都不会包含 . 例如,可以通过在中间使用 boost GIL 或使用自定义普通 C++ 类将图像数据从 Cocoa 框架传递到 opencv C++ 图像处理类来完成。