【问题标题】:Opencv Face detection Cascade compiler error in iOSiOS中的Opencv人脸检测级联编译器错误
【发布时间】:2014-09-09 11:17:28
【问题描述】:

在我的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;
}

我该如何解决这个问题?

【问题讨论】:

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


    【解决方案1】:

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

    将其替换为official one

    注意:它不包含“armv7s”的符号。它仍然可以在模拟器和实际设备上运行。

    【讨论】:

      猜你喜欢
      • 2016-10-26
      • 2013-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 1970-01-01
      • 2023-04-08
      • 2019-04-20
      相关资源
      最近更新 更多