由于笔者使用的是Mac,因此就Mac系统的OpenCV环境进行配置,使用的编辑器是Xcode,网上的教程老旧,且资料不是很完善,因此笔者在此记录下环境配置过程
准备工作
1.安装Xcode
在App Store中安装Xcode(具体不再赘述),目前版本为12.5,安装大小为11.7G,安装时间较长,具体取决于互联网速度与设备运行速度。
2.安装Homebrew
Homebrew是Mac上的包管理工具,功能强大具体以后专门写篇博客讲解。
如果你没有安装Homebrew,可以复制以下代码,在终端中执行安装。
1 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
3.安装OpenCV
完成了Homebrew的安装,只需要通过brew
命令即可安装openCV,此过程要花费较多的时间,安装各种依赖库,仅需等待即可。
1 | brew install opencv |
4.安装pkg-config
pkg-config
是在编译应用程序和库时使用的辅助工具,可以帮助我们找到找到正确的OpenCV 链接器符号 (Linker Flags) ,在后续的步骤中会用到。
安装pkg-config
,也只需要在终端输入以下命令
1 | brew install pkg-config |
5.使用pkg-config
查看您的opencv.pc
文件所在位置,一般opencv.pc
文件所在位置为
1 | /usr/local/Cellar/opencv/<版本号>/lib/pkgconfig/opencv.pc |
如笔者的版本为4.5.2
,opencv.pc
现已改为opencv4.pc
(不同电脑可能有所不同,读者可以cd
到相应文件目录查看具体信息)
1 | /usr/local/Cellar/opencv/4.5.2/lib/pkgconfig/opencv4.pc |
使用下面的命令查看OpenCV
的链接器符号 (Linker Flags) ,笔者的代码为
1 | pkg-config --cflags --libs /usr/local/Cellar/opencv/4.5.2/lib/pkgconfig/opencv4.pc |
你会得到类似于如下的输出结果,我们需要参照输出结果在 Xcode 中进行配置
1 | -I/usr/local/Cellar/opencv/4.5.2/include/opencv4 -L/usr/local/Cellar/opencv/4.5.2/lib -lopencv_gapi -lopencv_stitching -lopencv_alphamat -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_intensity_transform -lopencv_line_descriptor -lopencv_mcc -lopencv_quality -lopencv_rapid -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_sfm -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_highgui -lopencv_datasets -lopencv_text -lopencv_plot -lopencv_videostab -lopencv_videoio -lopencv_viz -lopencv_wechat_qrcode -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_video -lopencv_dnn -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core |
配置Xcode
6.创建Xcode项目
在正式运行 OpenCV C++代码之前,首先需要在 Xcode 中创建一个空的C++项目,创建Command Line Tool,具体创建过程不在这里叙述。
需要注意的是项目的 Language 应选择为 C++。
7.设置Header Search Paths
在 Xcode 中设置 Header Search Paths
,先单击 Xcode 项目,然后点击 Build Settings
,然后搜索Header Search Paths
。将 Header Search Paths
路径设置为刚才得到的输出结果“-I”之后的路径,如我需要对如下路径进行添加。
1 | /usr/local/Cellar/opencv/4.5.2/include/opencv4 |
8.设置 Library Search Paths
类似地,在 Build Settings
中搜索Library Search Paths
,将 Library Search Paths
路径设置为刚才得到的输出结果“-L”之后的路径,如我需要对如下路径进行添加。
1 | /usr/local/Cellar/opencv/4.5.2/lib |
9.测试运行
配置到这一步 Xcode 相关内容已经结束。可以尝试运行简单的OpenCV程序判断是否能够正常运行,以下给出简单的示例程序,功能仅为打开图片与退出。
你需要按照后文中“使用相对路径”方法配置相对路径并添加图片1.png到项目文件夹。
1 |
|
若运行过程出现问题请检查上述步骤是否正确,后文中给出了部分问题的解决方案,可能对您有帮助。
其它设置
使用相对路径
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 只是一种格式可以选择跳过检查。
参考
1.Setting up OpenCV and C++ development environment in Xcode for Computer Vision projects