基于Xcode搭建OpenCV开发环境
如何基于Xcode
搭建OpenCV
开发环境
我的开发平台是MacBook Pro (13-inch, M1, 2020)
,版本11.4
,硕士课题是关于计算机视觉的,平时主要用Clion/PyCharm
基于opencv-python/C++
进行开发。近期闲来没事体验一下苹果官方的开发工具,由于遇到了一些坑,网上的资料也不是很多,因此决定记录一下配置过程。
相应工具的安装
Xcode-13
有两种安装方法:
- (推荐)在
App Store
中安装Xcode
,直接安装就行,省心省事; - 登录
Apple Id
开发者账号,在官方网站进行下载,注意系统版本要对应支持的版本;
Homebrew
Homebrew是Mac
上的包管理工具,可以复制以下代码,直接在终端中安装。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
OpenCV
完成了Homebrew
的安装,只需要通过brew
命令即可安装openCV
,由于自己编译OpenCV
可能会出现很多问题,因此推荐通过用这种方法来安装。
brew install opencv
安装完成后,要记录一下你的OpenCV
安装路径,如下图所示,我的OpenCV
的安装路径是:
/opt/homebrew/Cellar/opencv/4.5.3_2
pkg-config
pkg-config
是在编译应用程序和库时使用的辅助工具,可以帮助我们找到找到正确的OpenCV
链接器符号 (Linker Flags) ,在后续的步骤中会用到。 安装pkg-config
,也只需要在终端输入以下命令
brew install pkg-config
配置Xcode
6.创建Xcode项目
在配置OpenCV
环境之前,我们首先要新建一个C++
项目,如图所示,选择macOS -> Command Line Tool。
并在下一步中的编程语言中选择:C++
。
使用pkg-config
查看OpenCV
的编译依赖
查看您的opencv.pc
文件所在位置,一般opencv.pc
文件所在位置为
/opt/homebrew/Cellar/opencv/<版本号>/lib/pkgconfig/
如笔者的版本为4.5.3_2
,opencv.pc
现已改为opencv4.pc
(不同电脑可能有所不同,读者可以cd
到相应文件目录查看具体信息)
/opt/homebrew/Cellar/opencv/4.5.3_2/lib/pkgconfig/opencv4.pc
使用下面的命令查看OpenCV
的链接器符号 (Linker Flags) ,笔者的代码为
pkg-config --cflags --libs /opt/homebrew/Cellar/opencv/4.5.3_2/lib/pkgconfig/opencv4.pc
你会得到类似于如下的输出结果,我们需要参照输出结果在 Xcode 中进行配置
-I/opt/homebrew/opt/opencv/include/opencv4 -L/opt/homebrew/opt/opencv/lib -lopencv_gapi -lopencv_stitching -lopencv_alphamat -lopencv_aruco -lopencv_barcode -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -...(后续省略)
设置Header Search Paths
在 Xcode 中设置 Header Search Paths
,先单击 Xcode 项目,然后点击 Build Settings
,然后搜索Header Search Paths
。将 Header Search Paths
路径设置为刚才得到的输出结果“-I
”之后的路径,如我需要对如下路径进行添加。
/opt/homebrew/opt/opencv/include/opencv4
设置 Library Search Paths
类似地,在 Build Settings
中搜索Library Search Paths
,将 Library Search Paths
路径设置为刚才得到的输出结果“-L
”之后的路径,如我需要对如下路径进行添加。注意,请将Lib
目录手动拖动到最上头
/opt/homebrew/opt/opencv/lib
设置Linker Flags
将上述pkg-config --cflags --libs .../opencv4.pc
导出的一长串信息全部复制下来,添加到如下所示的框框里。
测试
配置到这一步 Xcode 相关内容已经结束。可以尝试运行简单的OpenCV程序判断是否能够正常运行,以下给出简单的示例程序,功能仅为打开图片与退出。
#include <opencv2/core.hpp>#include <opencv2/highgui.hpp>
#include <iostream>
#include <unistd.h>
using namespace cv;
using namespace std;
int main( int argc, char** argv ) {
printf("Hello, world!"); // 手工断点/doge
char buf[200];
getcwd(buf,sizeof(buf));
printf("current working directory: %s
", buf); // 测试当前工作目录
Mat image;
image = imread("test.png", IMREAD_COLOR); // 注意图片的路径
if(! image.data ) { // 养成良好工作习惯
cout << "Could not open or find the image" << std::endl;
return -1;
}
imshow( "Display window", image);
waitKey(0);
return 0;
}
运行结果展示:
其它设置
使用相对路径
Xcode使用图像或资源的绝对路径。为了设置相对路径需要设置Working Directory
。依次点击
(菜单栏) Product > Scheme > Edit Scheme |-> Run -> option -> ✅ Use Custom Working Directory
然后自定义项目目录。
常见错误
Not a Doxygen trailing comment
在Build Settings
中搜索 “Documentation Comments
”,将 Documentation Comments
设置为 No
即可解决该问题。Doxygen 只是一种格式可以选择跳过检查。
以上是 基于Xcode搭建OpenCV开发环境 的全部内容, 来源链接: utcz.com/z/520414.html