1.安装依赖库:
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
2.获取OpenCV源代码
您可以使用最新稳定的OpenCV版本,或者从Git存储库获取最新的快照。
获取最新稳定的OpenCV版本
- 转到我们的下载页面。
- 下载源存档并解压缩。
3.使用CMake从源代码构建OpenCV
1、创建一个临时目录,我们将其指定为<cmake_build_dir>,您要将生成的Makefile,项目文件以及目标文件和输出二进制文件放在那里。
例如:
cd ~/opencv
mkdir build
cd build
2、配置。运行cmake [<some optional parameters>] <OpenCV源目录的路径>
例如
cmake -D CMAKE_BUILD_TYPE= elease -D CMAKE_INSTALL_PREFIX=/usr/local ..
或cmake-gui
- 设置OpenCV源代码的完整路径,例如/ home / user / opencv
- 设置完整路径到<cmake_build_dir>,例如/ home / user / opencv / build
- 设置可选参数
- 运行:“Configure”
- 运行:“Generate”
-
注意:
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
如果上述示例不起作用,则在-D之后不使用空格。 - 经过测试上述的会出现错误:
/usr/local/include/vtk-8.1/vtkDataSetMapper.h: In static member function ‘static vtkDataSetMapper* vtkDataSetMapper::SafeDownCast(vtkObjectBase*)’: /usr/local/include/vtk-8.1/vtkSetGet.h:655:12: error: ‘nullptr’ was not declared in this scope
正确的编译:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D PYTHON_DEFAULT_EXECUTABLE=$(python -c "import sys; print(sys.executable)") -D PYTHON3_EXECUTABLE=$(python -c "import sys; print(sys.executable)") -D PYTHON3_NUMPY_INCLUDE_DIRS=$(python -c "import numpy; print (numpy.get_include())") -D PYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") -D CMAKE_CXX_FLAGS="-std=c++11" -D CUDA_NVCC_FLAGS="--compiler-options "-std=c++03"" ..
摘自百度上的解决办法
3.安装
sudo make
sudo make install
4.完成,测试:
- 从OpenCV额外的存储库获取所需的测试数据。
例如:
git clone https://github.com/opencv/opencv_extra.git
- 将OPENCV_TEST_DATA_PATH环境变量设置为<path to opencv_extra / testdata>。
- 从构建目录执行测试。
例如:
<cmake_build_dir> / bin中/ opencv_test_core