iOS中的Opencv Face检测级联编译器错误

时间:2014-07-18 10:32:43

标签: c++ ios objective-c opencv tesseract

在我的IOS项目中,我实现了一个tesseract示例,在此示例中,我需要集成opencv。我使用了this sample project,它有默认的tesseract和opencv。

但是我尝试使用下面的代码

在这个项目中实现面部检测
 NSString* cascadePath = [[NSBundle mainBundle]
                             pathForResource:@"haarcascade_frontalface_alt"
                             ofType:@"xml"];
    faceDetector.load( [cascadePath UTF8String] );

但我收到以下错误:

Undefined symbols for architecture armv7:
  "cv::CascadeClassifier::load(std::string const&)", referenced from:
      -[ViewController viewDidLoad] in ViewController.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

现在在构建设置中 - > C ++编译器 - >选择“默认编译器”。我尝试了这个link的编译器设置。如果我这样设置“Tesseract”代码就会出错。

创建了faceDetector,如下所示:

@interface ViewController : UIViewController<UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIActionSheetDelegate>{
    UIImagePickerController *mediaPicker;
    UIImage *takenImage;
    UIImage *processedImage;
    cv::CascadeClassifier faceDetector;
}

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

删除现有的“opencv2.framework”(已提出xcode项目的那个)

将其替换为official one

注意:它不包含“armv7s”的符号。它仍然适用于模拟器和实际设备。