Ubuntu18.04从源码编译OpenCV
配置列表
名称 |
版本 |
系统版本 |
Ubuntu18.04LTS |
OpenCV |
4.1.0 |
GCC |
7.5.0 |
从源码编译OpenCV-仅CPU
1 2 3
| sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22
|
1 2 3
| sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" sudo apt update sudo apt install libjasper-dev
|
获取 OpenCV
源码 —— 有两种方式
1 2 3
| tar zxvf opencv-4.1.0.tar.gz ~/workspace/ tar zxvf opencv_contrib-4.1.0.tar.gz ~/workspace/ tar zxvf opencv_extra-4.1.0.tar.gz ~/workspace/
|
编译(CPU)
1 2 3
| cd ~/workspace/opencv-4.1.0/ mkdir build cd build
|
- 配置
cmake
参数,修改 opencv_extra
和 opencv_contrib
的路径
1 2 3 4 5 6 7
| cmake -DCMAKE_BUILD_TYPE=Release \ -DINSTALL_TESTS=ON \ -DOPENCV_TEST_DATA_PATH=../../opencv_extra-4.1.0/testdata \ -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.0/modules \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DOPENCV_GENERATE_PKGCONFIG=YES \ ..
|
- 等待
makefile
生成完毕后开始编译 —— 过程保持网络通畅,有一些包需要下载
1 2
| NUM_CPU=$(nproc) make -j$(($NUM_CPU - 1))
|
- 可以去泡壶茶然后休息一下,看看番,编译速度取决于CPU
- 可以看看这里的视频 —— 不是广告
- 这一步将编译好的
.so
文件以及头文件安装到 /usr/local
目录下
编译完成将OpenCV
添加到环境变量
sudo gedit /etc/ld.so.conf.d/opencv.conf
- 打开
opencv.conf
在其中添加 /usr/local/lib

sudo gedit /etc/bash.bashrc
1 2
| PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH
|
测试
1 2 3 4
| cd ~/workspace/opencv-4.1.0/samples/cpp/example_cmake/ cmake . make ./opencv_example
|
- 成功启动相机并显示
Hello OpenCV
字样
- 如果你没有摄像头
编译完成
从源码编译OpenCV(开启GPU加速)
配置列表
名称 |
版本 |
系统版本 |
Ubuntu18.04LTS |
OpenCV |
4.1.0 |
GCC |
7.5.0 |
CUDA |
10.2 |
安装所需依赖
1 2 3
| sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22
|
1 2 3
| sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" sudo apt update sudo apt install libjasper-dev
|
1 2 3 4 5 6
| sudo apt-get install \ libglew-dev \ zlib1g-dev \ libavutil-dev \ libpostproc-dev \ libeigen3-dev
|
编译(GPU)
1 2 3
| cd ~/workspace/opencv-4.1.0/ mkdir build cd build
|
- 配置
cmake
参数,修改 opencv_extra
和 opencv_contrib
的路径
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DBUILD_PNG=OFF \ -DBUILD_TIFF=OFF \ -DBUILD_TBB=OFF \ -DBUILD_JPEG=OFF \ -DBUILD_JASPER=OFF \ -DBUILD_ZLIB=OFF \ -DBUILD_EXAMPLES=ON \ -DBUILD_opencv_python2=OFF \ -DBUILD_opencv_python3=ON \ -DBUILD_opencv_cudacodec=OFF \ -DWITH_OPENCL=OFF \ -DWITH_OPENMP=OFF \ -DWITH_FFMPEG=ON \ -DWITH_GSTREAMER=OFF \ -DWITH_GSTREAMER_0_10=OFF \ -DWITH_CUDA=ON \ -DWITH_TBB=ON \ -DWITH_GTK=ON \ -DWITH_VTK=OFF \ -DWITH_1394=OFF \ -DWITH_OPENEXR=OFF \ -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.1 \ -DCUDA_ARCH_PTX="" \ -DINSTALL_C_EXAMPLES=OFF \ -DINSTALL_TESTS=ON \ -DOPENCV_TEST_DATA_PATH=../../opencv_extra-4.1.0/testdata \ -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.0/modules \ -DOPENCV_GENERATE_PKGCONFIG=YES \ ..
|
- 等待
makefile
生成完毕后开始编译 —— 过程保持网络通畅,有一些包需要下载
1 2
| NUM_CPU=$(nproc) make -j$(($NUM_CPU - 1))
|
- 这里编译时间更久,你可以叫几个朋友一起喝茶 (= =!)
sudo make install
编译完成后安装
sudo gedit /etc/ld.so.conf.d/opencv.conf
- 打开
opencv.conf
在其中添加 /usr/local/lib

sudo gedit /etc/bash.bashrc
1 2
| PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH
|
编译完成
参考