最近做一些传统算法特征提取方面的工作,由于SIFT算法存在专利限制,需要用到OpenCV Contrib包,就需要自己去编译OpenCV。
平时我们自己编译CV都是安装到/usr/local下面,而编译安装到Conda虚拟环境中就成了个不大不小的坑,直接安装到/usr/local是import不到的。
首先安装依赖并git clone OpenCV和OpenCV Contrib的源码,都是ISO流程就不详细说了,可以参考我以前的文章,虽然是树莓派的例子,但是我试了下依赖和ubuntu是一样的。
然后Anaconda建虚拟环境并激活,建议安装上numpy,编译的opencv-python会有依赖。
接下来cmake一条龙:
cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.3.0/modules \
-D OPENCV_ENABLE_NONFREE=ON \
-D WITH_OPENMP=ON \
-D WITH_TBB=ON \
-D OPENCV_EXTRA_EXE_LINKER_FLAGS=-latomic \
-D ENABLE_PRECOMPILED_HEADERS=OFF \
-D WITH_CUDA=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D WITH_CUBLAS=1