最近想将MacOS上的opencv从2.4.9升级到4.1.0。本来以为简单的通过homebrew进行升级就可以了,可是发现升级到4.1.0以后运行程序无法打开摄像头。很多人有类似的经历,有的说需要自己改一个info.list文件(尝试以后发现依然不可以),有的说是版本问题。于是打算从4.1.0改到3.1.0。最简单的方法是使用brew将4.1.0卸载后,下载homebrew-core,改动Fomula文件内的opencv.rb,将HEAD改到对应的3.1.0版本,在安装的时候发现各种报错,于是最终打算使用源码编译。
首先碰到的坑是"QTKit problem",改为OSX AVFoundation support。
首先,克隆opencv包
git clone https://github.com/Itseez/opencv.git
cd opencv
然后checkout到相应的commit
git fetch https://github.com/opencv/opencv.git +pull/7266/head:pr7266
git checkout pr7266
然后再按照再Linux下的安装步骤就可以了
mkdir build && cd build
cmake ..
sudo make -j4
sudo make install
在make的时候可能回出现问题
fatal error: 'wchar.h' file not found
不再mojave版本解决方法是:
xcode-select --install
sudo xcode-select --switch /Library/Developer/CommandLineTools/
其中原因是因为新版本的CLT安装在了另外的地方。
如果是mojave版本系统的话:
执行下面指令,然后按知道完成安装即可。
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
然后就一路顺风顺水的安装好opencv3.1.0了。