Opencv人脸检测iOS级联编译错误

Opencv Face detection Cascade compiler error in iOS

本文关键字:级联 编译 错误 iOS 检测 Opencv      更新时间:2023-10-16

在我的IOS项目中,我实现了一个tesseract样本,在这个样本中,我需要集成opencv。我使用了这个示例项目,它有默认的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++编译器->"默认编译器"被选中。我已经尝试了编译器设置从这个链接。如果我这样设置,"Tesseract"代码会出错。

创建faceDetector如下:

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

我该如何解决这个问题?

删除你现有的"opencv2.framework"(就是你的xcode项目)

替换为正式的

注意:它不包含"armv7s"的符号。