以下主要介绍在Mac OSX上用cmake编译opencv和如何在Xcode上用C++使用opencv
当然,这已经有较多博客记录,但由于年代原因这些博客残缺不全,或这或那的问题,导致花费了我几乎快一天的时间在配置环境
所以,以下除了主要内容,仍记录下我遇到的一些坑以及原因和解决方法
1. 安装homebrew
homebrew之于Mac正如apt之于Linux,都是一个安装包集成工具,方便我们直接用命令安装软件
安装方法
- 直接到homebrew官网复制以下命令到终端运行
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
使用方法
基本命令为brew install + 软件名
比如brew install opencv
2. 安装CMake
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,方便我们之后用make安装opencv。CMake类似UNIX下的automake。
安装方法
直接用homebrew安装
brew install cmake
3. openCV
下载openCV
方式一
直接用homebrew下载,以opencv3为例,命令为brew install opencv3
方式二
到opencv官网下载源码
- 官网:https://opencv.org/
- 下载所需版本的openCV的source code
安装openCV
- 在terminal里cd到你下载的opencv的地址
- homebrew下载的其路径一般在/usr/local/Cellar
- 新建文件夹,并cd进去
mkdir release
cd release
- cmake
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$HOME ..
- make
make
- install
sudo make install
- 问题一:为什么要加CMAKE_INSTALL_PREFIX且指定为用户目录?
- 这个问题困扰了我许久,因为根据以往的经验,我是直接就cmake的了,但是之后的make install一直遇到权限不够的问题,即便我在install加了sudo,后来想想install执行的应该是cmake的代码,在99%下面提示错误如下:
- file cannot create directory: /usr/local/share/OpenCV. Maybe need administrative privileges.
- 将cmake的安装目录改成home的话就都可以了
- 可恨的是一开始我没注意到这行错误,继续进行xcode的部分一直不成功,所以以为是xcode配置的问题而没想到是opencv安装不成功,因为大部分dylibopencv文件是已经创建成功的了。这是浪费了大部分时间的原因
- 问题二:为什么要sudo安装?
因为安装openCV时候要搞到系统文件夹,所以要权限
看到安装完就已经快成功了
Xcode的配置
1.首先当然是创建一个command line的c++ project
2.添加lib文件
- 右键工程,选择Add file
- 在文件选择对话框输入”/“,或者按command+shift+g,在弹出的路径框中输入~/lib,就是浏览到你的home目录下,因为你把opencv安装在这了,把里面的全部dylibopecv文件都加进去(其实添加opencv_core,opencv_highgui, opencv_imgproc, opencv_ml四个大概就足够了)
- 嫌乱就新建一个group,把这些文件拖进去
3.添加lib和header搜索路径
- 单击项目工程文件,在Build Setting那里搜索search,找到Header Search Path和Library Search Path
- 双击Header Search Path,新增~/include和~/include/opencv两条
双击Library Search Path,添加/usr/local/lib和~/lib两条

代码样例
好了,最后的最后,来一波代码测试下吧
下面是一个打开图片的代码
1 |
|