美文网首页
iOS集成OpenCV的常见错误

iOS集成OpenCV的常见错误

作者: 阳明AI | 来源:发表于2020-08-26 09:43 被阅读0次

1.1、改为Objective-C与C++混编

凡是导入OpenCV头文件的类,都需要把相应类后缀名.m改为.mm

#import <opencv2/opencv.hpp>
#import <opencv2/imgproc/types_c.h>
#import <opencv2/imgcodecs/ios.h>

1.2、Objective-C和C++的混编的深坑

OpenCV框架提供是C++的API接口,凡是使用OpenCV的地方,类的文件类型必须由.m类型改为.mm类型,这时候编译器按照OC与C++混编进行编译。

假设你使用OpenCV的类为A.mm,那如果你在Objective-C的类B.m中导入使用,此时编译器会认为此时A.mm也按照Objective-C类型编译,你必须把B.m类型更改为B.mm类型才不会报错,以此类推,你在C.m中使用B.mm,那C也必须更改为C.mm类型。。。有人比喻这样蔓延的有点像森林大火,一个接一个,很形象。

解决办法:在导入OpenCV头文件的时候,#import <opencv2/opencv.hpp>前面加上#ifdef __cplusplus,指明编译器只有使用了OpenCV的.mm类型文件,才按照C++类型编译。如下即可解决:

#ifdef __cplusplus
#import <opencv2/opencv.hpp>
#import <opencv2/imgproc/types_c.h>
#import <opencv2/imgcodecs/ios.h>
#endif

1.3、编译警告

导入OpenCV使用时,Xcode8会有一堆类似warning: empty paragraph passed to '@param' command [-Wdocumentation]的文档警告。

<figcaption></figcaption>

虽然项目目前不报错了,但对于有强迫症的小伙伴来说,还是不能忍。解决办法:导入头文件的时候,忽略文档警告即可;同时只在需要的地方导入C++类,则加上编译器忽略文档警告即可,解决办法如下:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdocumentation"

#ifdef __cplusplus
#import <opencv2/opencv.hpp>
#import <opencv2/imgproc/types_c.h>
#import <opencv2/imgcodecs/ios.h>
#endif

#pragma clang pop

1.4、在pch 中添加头文件

#ifdef __cplusplus

#import

#endif

#其他的用头文件用__OBJC__包含起来

#ifdef __OBJC__

#endif

https://www.jianshu.com/p/0ed527eb7c20

相关文章

  • iOS通过OpenCV实现马赛克

    iOS集成OpenCV的两个常见错误 问题一:enum { NO, GAIN, GAIN_BLOCKS }; ...

  • iOS集成OpenCV的常见错误

    1.1、改为Objective-C与C++混编 凡是导入OpenCV头文件的类,都需要把相应类后缀名.m改为.mm...

  • iOS集成OpenCV的一些错误合集

    iOS集成OpenCV的一些错误合集1,添加opencv[https://so.csdn.net/so/searc...

  • openCV学习

    在 iOS 上使用 OpenCV## 一 : 添加 OpenCV 到你的工程中#### 集成 OpenCV 到你的...

  • iOS集成OpenCV

    iOS项目集成OpenCV及踩过的坑 一、直接下载Framework集成 1.1、下载OpenCV的Framewo...

  • iOS opencv 的集成

    iOS 集成opencv 1. https://opencv.org 官网下在 点击Releases —> ...

  • iOS集成OpenCV最新版本

    集成环境: Xcode 8.3.2 openCV最新版本 1.首先下载iOS端openCV.framework库 ...

  • OpenCV:iOS集成

    相关链接:OpenCV官网OpenCV教程 集成相关库 利用cocoapods集成opencv失败 无奈只好去官网...

  • Android中使用OpenCV

    三点: 集成OpenCV 使用官方的人脸识别模型写个Demo 训练库 一、集成OpenCV OpenCV集成还是很...

  • iOS openCV的研究(1)——集成环境

    openCV的集成超级简单,到openCV官网下载iOS对应的框架,然后导入到工程中就可以了。 整个工程会在Git...

网友评论

      本文标题:iOS集成OpenCV的常见错误

      本文链接:https://www.haomeiwen.com/subject/fyuorktx.html