ubuntu 18.04 安装opencv3.4.8

ubuntu 18.04 安装opencv3.4.8

  • 0. 下载OpenCV
  • 1. 安装相关的依赖包
  • 2. 安装OpenCV3.4.8
  • 3. 配置环境变量
  • 4. 测试

0. 下载OpenCV

地址 版本
https://opencv.org/releases/ opencv-3.4.8.zip
https://github.com/opencv/opencv_contrib opencv_contrib-3.4.8.zip

1. 安装相关的依赖包

$ sudo apt-get install build-essential cmake pkg-config qt5-default
$ sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev # 处理图像
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev libxvidcore-dev libx264-dev ffmpeg # 处理视频
$ sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能

2. 安装OpenCV3.4.8

$ unzip opencv-3.4.8.zip
$ cd opencv-3.4.8
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
	-D CMAKE_INSTALL_PREFIX=/usr/local/opencv348 \
	-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.8/modules/ \
	-D PYTHON_EXECUTABLE=/usr/bin/python3 \
	-D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 \
	-D PYTHON_INCLUDE_DIR=/usr/include/python3.6 \
	-D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python3.6m \
	-D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
	-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/lib/python3.6/dist-packages/numpy/core/include/ \
	-D OPENCV_GENERATE_PKGCONFIG=ON \
	-D BUILD_opencv_python2=OFF \
	-D CUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so \
	-D CUDA_ARCH_BIN=3.5 \
	-D CUDA_ARCH_PTX="" \
	-D WITH_CUDA=ON \
	-D WITH_TBB=ON \
	-D BUILD_NEW_PYTHON_SUPPORT=ON \
	-D WITH_V4L=ON \
	-D WITH_QT=ON \
	-D INSTALL_C_EXAMPLES=OFF \
	-D INSTALL_PYTHON_EXAMPLES=OFF \
	-D BUILD_EXAMPLES=OFF \
	-D WITH_OPENGL=ON \
	-D ENABLE_FAST_MATH=1 \
	-D CUDA_FAST_MATH=1 \
	-D WITH_CUBLAS=1 \
	-D WITH_NVCUVID=ON \
	-D BUILD_opencv_cudacodec=OFF ..
	
$ sudo make -j4
$ sudo make install

如果提示缺少文件,到此处(gitee地址)找以下文件,放到opencv_contrib/modules/xfeatures2d/src/下:
boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_lbgm.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_120.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_48.i

3. 配置环境变量

$ sudo vi /etc/ld.so.conf.d/opencv.conf

加入:

/usr/local/opencv348/lib
$ sudo ldconfig
$ vi ~/.bashrc

在末尾添加:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv348/lib/pkgconfig  
export PKG_CONFIG_PATH 
$ source ~/.bashrc
$ sudo updatedb

将opecv添加到python的sys.path

$ sudo vi /usr/local/lib/python3.6/dist-packages/opencv.pth

加入:

/usr/local/opencv348/lib/python3.6/dist-packages

4. 测试

$ vim main.cpp
using namespace std;
#include "opencv2/opencv.hpp"
#include "opencv2/core/cuda.hpp"
using namespace cv;
using namespace cv::cuda;
int main()
{
    int num_devices = cv::cuda::getCudaEnabledDeviceCount();

    cout<
$ vim CMakeLists.txt
# cmake needs this line
cmake_minimum_required(VERSION 2.8)

# Define project name
project(test)
# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI
find_package(OpenCV 3.4.8 REQUIRED)

# If the package has been found, several variables will
# be set, you can find the full list with descriptions
# in the OpenCVConfig.cmake file.
# Print some message showing some of them
message(STATUS "OpenCV library status:")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")

if(CMAKE_VERSION VERSION_LESS "2.8.11")
  # Add OpenCV headers location to your include paths
  include_directories(${OpenCV_INCLUDE_DIRS})
endif()

# Declare the executable target built from your sources
add_executable(test main.cpp)

# Link your application with OpenCV libraries
target_link_libraries(test ${OpenCV_LIBS})
$ mkdir build && cd build
$ cmake ..
$ make
$ python3
import cv2
print(cv2.__version__)

你可能感兴趣的:(ubuntu 18.04 安装opencv3.4.8)