Mac xcode配置opencv + non-free contrib 包

如果想使用用opencv4+non-free,可以直接使用brew下载安装,方便快捷省心:

brew install opencv --with-contrib

之后配置xcode环境的步骤:

在“Header Search Path”中输入 ​​​​​​​/usr/local/Cellar/opencv/4.0.1/include/opencv4/

在“Library Search Path”中输入 ​​​​​​​/usr/local/Cellar/opencv/4.0.1/lib/

然后,在上图“Build settings” 旁边的“Build  Phases”中,下,点加号,加入/usr/local/Cellar/opencv/4.0.1/lib/ 中所有opencv的.dylib文件。

 =======大功告成=======

然而,brew install方式,目前似乎不能在安装opencv3了,我手上的代码,是opencv3中写的,换到4,有一些报错,我怕改出问题,于是打算再装一个opencv3.4+non-free contrib 用。

首先,下载opencv3.4源码和opencv_contrib源码:

git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 3.4

cd ..
git clone https://github.com/opencv/opencv_contrib.git
git checkout 3.4

千万别忘了checkout,换到3.4 那个版本。

然后按照opencv_contrib的GitHub上的指示,与opencv一起进行编译:

cd opencv
mkdir build
cd build
cmake cmake -DOPENCV_EXTRA_MODULES_PATH=【填入opencv_contrib的位置】 -D WITH_GSTREAMER=OFF -D OPENCV_ENABLE_NONFREE=ON ..

*特别解释一下,

-D WITH_GSTREAMER=OFF 这是因为,我的mac上用brew 安装了gstreamer之后,源码编译opencv时,make就会卡在一个80%左右地方,报错是:/ts/ts_gtest.h:1392:53: error: array initializer must be an initializer list or string literal ……。我发现,那个卡住的部分,是因为cmake检测到我电脑有gstreamer,于是自动要编译一个test gstreamer的程序包。加上这个“=OFF”,即可避免make这一部分。

-D OPENCV_ENABLE_NONFREE=ON :添加nonfree包,是官方给出的指导。

还有,因为编译nonfree包中的features2d,需要下载一些.i文件,而身在中国,不翻墙你是下不来的。而我需恰恰要这个包,于是,我用mac版proxifier+ss 给terminal翻墙,具体方法请自行查一下~

最后,

make -j8
sudo make install

然后再xcode中配置的方法与brew 安装相似,只不过

在“Header Search Path”中输入 ​​​​​​​/usr/local/include/

在“Library Search Path”中输入 ​​​​​​​/usr/local/lib/

并且,“Build  Phases”中,下,加入/usr/local/lib/ 中所有opencv的.dylib文件(应该是17个)。

大功告成!

猜你喜欢

转载自blog.csdn.net/fanyue1997/article/details/86479888
今日推荐