基于Xcode搭建OpenCV开发环境

编程

如何基于Xcode搭建OpenCV开发环境

我的开发平台是MacBook Pro (13-inch, M1, 2020),版本11.4,硕士课题是关于计算机视觉的,平时主要用Clion/PyCharm基于opencv-python/C++进行开发。近期闲来没事体验一下苹果官方的开发工具,由于遇到了一些坑,网上的资料也不是很多,因此决定记录一下配置过程。

相应工具的安装

Xcode-13

有两种安装方法:

  1. (推荐)在App Store中安装Xcode,直接安装就行,省心省事;
  2. 登录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_2opencv.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

回到顶部