为了在mac上安装opencv4并使用SIFT与SURF,只能通过源码自己编译,现在总结一下,我安装的版本为4.1.2
0. 提前准备
在mac为了编译各种源码,我们必须安装xcode,安装完成后执行如下命令安装命令行工具
sudo xcode-select --install
最好将Homebrew和Anaconda3也都装上,我是用的conda管理python环境的,在安装前请确认自己的cmake
和clang
等命令是可以正常使用的
1. 下载OpenCV4.x and OpenCV-Contrib4.x
现在的SIFT、SURF等算法已经都放在OpenCV-Contrib中了
cd ~
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
2. 创建conda环境
个人比较喜欢anaconda,如果使用别的环境控制工具也是可以的
conda create --name cv python=3 # python3
conda activate cv # or source activate cv
conda install numpy # numpy是必须的
cd ~/opencv
3. 编译
cd ~/opencv
mkdir build
cd build
在build目录下执行以下命令
export CONDA_HOME=~/anaconda3/
export CPLUS_INCLUDE_PATH=~/anaconda3/envs/cv/lib/python3.7
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-4.1.2/modules \
-D PYTHON3_EXECUTABLE=~/anaconda3/envs/cv/bin/python \
-D PYTHON3_INCLUDE_DIR=~/anaconda3/envs/cv/include/python3.7m \
-D PYTHON3_LIBRARY=~/anaconda3/envs/cv/lib/libpython3.7m.dylib \
-D PYTHON3_PACKAGES_PATH=~/anaconda3/envs/cv/lib/python3.7/site-packages \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_EXAMPLES=ON .. # ..表示上一个目录
# 如果想使用pkg-config查找opencv4还需要添加
# -D OPENCV_GENERATE_PKGCONFIG=YES
完成后执行make -j
再执行sudo make install
全部安装结束
4. Test
下载官方测试集
git clone https://github.com/opencv/opencv_extra.git
将环境变量OPENCV_TEST_DATA_PATH设置为<path to opencv_extra/testdata>.
export OPENCV_TEST_DATA_PATH=~/opencv_extra/testdata
最后运行<cmake_build_dir>/bin/opencv_test_core
~/opencv-4.1.2/build/bin/opencv_test_core
大功告成!
上述部分参考了官网的教程和一些网络博客