sudo apt-get install build-essential// 必须的,gcc编译环境
sudo apt-get install cmake git // 必须的,包括cmake等工具
sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev// 显示使用
cd opencv320
mkdir build
cd opencv320/build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
// 生成后的Makefile在build文件夹中,而需要的CMakeLists.txt在 ".."中,即上一级文件夹中(opencv-3.1.0)
#上步可能出现因某文件下载失败(被墙或网络差),而无法正常安装,此刻可以自行下载该文件,放在正确位置。即可跳过下载过程。
(2) cmake-gui方式
cmake-gui即cmake和图形界面版程序:
先安装cmake-gui
sudo apt-get install cmake-qt-gui
然后打开cmake-gui:
“/OpenCV-3.1.0” 和 “/opencv-3.1.0/build”换成自己的,然后先点 Configure 然后点 Generate。
在opencv3.1.0/build下,终端运行:
make -j7
// 7个线程编译
sudo make install
// 安装
如果出现一大堆的错误
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CUDA_cufft_LIBRARY (ADVANCED)
linked by target "opencv_cudev" in directory E:/opencv/sources/modules/cudev
linked by target "opencv_test_cudev" in directory E:/opencv/sources/modules/cudev/test
linked by target "opencv_core" in directory E:/opencv/sources/modules/core
linked by target "opencv_core" in directory E:/opencv/sources/modules/core
然后把with_CUDA的状态为:不选择,在此configure没有问题
两种方式:
第一种方法:
增加 -D WITH_OPENMP=ON
第二种方法:
从系统变量中删除Anaconda路径
sudo gedit ~/.bashrc
注释掉如下两行
#export PATH="/home/lab/SOFT_APP/Anaconda2/bin:$PATH"
source ~/.bashrc
5、扫尾工作
#最后
将ippicv中的64位lib文件复制到/usr/local/lib下
如果编译正常,运行时提示出错:
error while loading shared libraries: libopencv_highgui.so.3.2; cannot open shared object file:no such file or directory
在终端输入:
pkg-config --cflags --libs opencv
看到输出一些-I -L选项如下,即pkg-config 安装正确,OpenCV 安装正确。如未安装,请先安装;如果发现不正确,可以修改/usr/local/lib/pkgconfig/opencv.pc文件,这个文件就是opencv的目录配置。
或者:
因为这是通过opencv的库之间的缺失环节的所以有必要指定ld_libraty_path配置。 PS.lib路径是假设是:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
我已经尝试了一下,效果很好。
两种方法查看Linux中安装的OpenCV版本:
方法一:直接在终端输入以下命令
方法二:编写一个C/C++小程序,打印字符串"CV_VERSION" 或者 "CV_MAJOR_VERSION", "CV_MINOR_VERSION", "CV_SUBMINOR_VERSION"。