编译OPENCV

编译OPENCV

Posted by WW on April 6, 2021

1 安装依赖

1.1 ffmpeg 用于打开摄像头

sudo apt-get install ffmpeg  libavcodec-dev libavformat-dev libswscale-dev  libavutil-dev -y 

编译参数

-DWITH_FFMPEG=ON

1.2 gtk 用于gui

ubuntu20 上无法安装

sudo apt-get install libgtk2.0-dev

编译参数

-D WITH_GTK=ON 

2 安装Astra 相机SDK

orbbec3d下载SDK和OPENNI2驱动

2.1 执行修改摄像头权限脚本,免root启动摄像头

chmod +x ./install/install.sh
sudo ./install/install.sh

如果上述install.sh脚本执行完毕后,打开摄像头仍需要root权限,则需要重启下 【可选】建议在.bash_profile或.bashrc下直接添加该SDK的环境变量:

export ASTRA_SDK_INCLUDE=/home/null/Code/DepthCamera/AstraSDK/AstraSDK-v2.1.1/include
export ASTRA_SDK_LIB=/home/null/Code/DepthCamera/AstraSDK/AstraSDK-v2.1.1/lib

2.2 使用SDK中的demo

ubuntu20上无法安装sfml gui,可以直接下载发行包 不同版本的sdk需要不同版本的sfml

export LD_LIBRARY_PATH=~/dev/SFML-2.4.0/lib/;~/dev/SFML-2.5.1/lib/

运行demo

./bin/SimpleStreamViewer-SFML

2.3 编译OPENNI2支持

cd OpenNI_2.3.0.66/Linux/OpenNI-Linux-x64-2.3.0.66

sudo ./install.sh

设置环境变量

$ source OpenNIDevEnvironment

验证是否设置成功

$ echo $OPENNI2_INCLUDE
/home/user/OpenNI_2.3.0.63/Linux/OpenNI-Linux-x64-2.3.0.63/Include
$ echo $OPENNI2_REDIST
/home/user/OpenNI_2.3.0.63/Linux/OpenNI-Linux-x64-2.3.0.63/Redist

增加cmake参数

 -DWITH_OPENNI2=ON

3 cmake 编译

3.1 指定扩展模块,避免下载太多资源出错

-DBUILD_LIST=calib3d,videoio,ts,ml,ximgproc

3.2 编译


cmake -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules -DWITH_OPENNI2=ON -DCMAKE_INSTALL_PREFIX=~/dev/install -DBUILD_TESTS=OFF -DOPENCV_ENABLE_NONFREE=ON -DWITH_EIGEN=ON -DBUILD_LIST=calib3d,videoio,ts,ml,ximgproc -D WITH_IPP=OFF -DWITH_FFMPEG=ON -DBUILD_SHARED_LIBS=ON -DWITH_PROTOBUF=OFF ..

3.3 更多选项

python

-D BUILD_opencv_python3=ON\
-D BUILD_opencv_python2=OFF\
-D PYTHON_DEFAULT_EXECUTABLE=$(which python3)\
-D PYTHON3_EXECUTABLE=$(which python3) \
-D PYTHON3_LIBRARY=$(python3 -c "from distutils.sysconfig import get_config_var;from os.path import dirname,join ; print(join(dirname(get_config_var('LIBPC')),get_config_var('LDLIBRARY')))")\
-D PYTHON3_LIBRARY:FILEPATH=/home/waxz/miniconda3/lib/libpython3.7m.so\
-D PYTHON3_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
-D PYTHON3_INCLUDE_DIR=$(python3 -c "from os.path import dirname; from distutils.sysconfig import get_config_h_filename; print(dirname(get_config_h_filename()))") \
-D PYTHON3_NUMPY_INCLUDE_DIRS=$(python3 -c "import numpy; print(numpy.get_include())") \
-D PYTHON3_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
-D OPENCV_PYTHON3_INSTALL_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \

cuda

-D WITH_CUDA=ON \
-D BUILD_opencv_cudacodec=OFF \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \

Before the compilation you must check that CUDA has been enabled in the configuration summary printed on the screen. (If you have problems with the CUDA Architecture go to the end of the document).

--   NVIDIA CUDA:                   YES (ver 10.0, CUFFT CUBLAS NVCUVID FAST_MATH)
--     NVIDIA GPU arch:             30 35 37 50 52 60 61 70 75
--     NVIDIA PTX archs: