在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001)

在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)

一 下载

先去github上下载对应的opencv版本和opencv_contrib版本,我下载的是opencv4.1.1,所以contrib也要下载4.1.1版本。
注意!版本一定要对应!!!
opencv下载网址[link],下载Source code,zip或者tar.gz都可以。
contrib下载网址[link]。
在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001)_第1张图片

二 安装

1.安装依赖

sudo apt-get installbuild-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 libjasper-dev libdc1394-22-dev

安装完成后,把contrib文件夹放入opencv目录下,并且创建build文件夹,此处已经将源代码文件解压。
在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001)_第2张图片此处为了方便我把contrib名字后面的4.1.1去掉了。

下面是另外一篇参考博文的环境

# 因为安装 libjasper-dev 这个依赖包可能会出问题,所以先执行以下命令,在执行后续依赖包的安装
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
# 而且一路配置过来犯过一些错(具体错误 ——> 问题 4),说 libgtk 依赖要先于 opencv 某些依赖安装(——> 参考 9),保险起见
sudo apt-get install libgtk-3-dev libgtk2.0-dev pkg-config

# 接下来就可以执行后续命令
# 可以输入下面的一次装,省心省力

# 分步装
sudo apt-get install build-essential
# opencv4.1.0需要 libgtk-3-dev 
sudo apt-get install cmake libgtk-3-dev libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python3-dev python3-numpy python-dev python-numpy libpython3.6-dev libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libjasper-dev libdc1394-22-dev # 处理图像所需的包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libopenexr-dev
sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
sudo apt-get install ffmpeg

# 一次装 (就是把上面的依赖全部写成一行,省心,下载过程中有些依赖需要你确认,-y 是替你输入 y ,省力)
sudo apt-get -y install build-essential cmake libgtk-3-dev libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python3-dev python3-numpy python-dev python-numpy libpython3.6-dev libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libjasper-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev libopenexr-dev libxvidcore-dev libx264-dev libatlas-base-dev gfortran ffmpeg

如果遇到无法安装或找不到软件的问题,百度即可找到解决方法在此不赘述。

2.安装cmake-gui
有直接用cmake安装过,但在配置pkgconfig路径时发现lib下没有生成该文件夹,所以参考其他博文后选择cmake-gui。

sudo apt-get install cmake-gui

3.安装配置opencv
进入上面创建的build文件路径,然后输入:

cmake-gui ..

确定路径没问题之后点击configure选择Unix Makefiles,其余默认,点击finish。需要下载一些文件,要等待一段时间。然后CMake即载入默认配置,如下图所示:
在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001)_第3张图片此处十分重要!!!
这里需要对几个地方进行修改:
(1)将BUILD_opencv_world处勾上,不然可能生成报错。
在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001)_第4张图片

(2)在CMAKE_BUILD_TYPE 值处输入RELEASE,其他保持不变(如果已经存在就不必修改)。
下方的CMAKE_INSTALL_PREFIX显示了默认的安装目录,生成makefile文件最后执行 make install时就会安装到这个目录,这里可以根据个人需求更改。但是建议就按照默认路径来,不要乱改!

在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001)_第5张图片
(3)在OPENCV_EXTRA_MODULES_PATH处,选择输入目录(单击这一行后方空白处即可选中)。
在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001)_第6张图片接着选择opencv_contrib文件夹中的modules文件夹,注意,不是只选中opencv_contrib文件夹就好了,需要点进去选中里面的modules文件夹! 如下图所示,大家从自己安装位置选择就好。然后点Choose。

在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001)_第7张图片
(4)重要的一个,也是装了两三遍的原因,OPENCV_GENERATE_PKGCONFIG处勾上,不勾的话我选的/usr/local/lib路径下不会生成pkgconfig文件夹,opencv.pc文件也就不会生成。
在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001)_第8张图片Configure done和Generate done后,退出cmake-gui,继续在build路径下输入make,开始编译,过程很长,有的博文推荐make -j2,然后他报错了,所以我没有尝试。
在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001)_第9张图片在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001)_第10张图片最后再输入

sudo make install

在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001)_第11张图片这样安装部分就成功了~

4.配置环境
(1)安装成功后还需要设置opencv的环境变量。打开文件:

  sudo gedit /etc/ld.so.conf.d/opencv.conf

(2)将以下内容添加到最后:(我的是空白文件,放在第一行即可)

  /usr/local/lib

(3)接下来配置库:

  sudo ldconfig

(4)更改环境变量:

  sudo gedit /etc/bash.bashrc

(5)在文件后添加:

  PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig 
  export PKG_CONFIG_PATH

保存退出,到这一步,opencv安装完成!

5.测试
用config查看是否配置成功。
在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001)_第12张图片发现没有找打opencv,参考其他博文后发现/usr/local/lib/pkgconfig下的是opencv4.pc,故:
在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001)_第13张图片至此安装完成。
不知用起来又会有什么问题。。。。。。

主要参考的两篇博文:
https://blog.csdn.net/echoamor/article/details/83022352
https://blog.csdn.net/u011897411/article/details/89743448

更新:
(1)
在运行实例时发现按照参考博文指令运行报错,一番查找后运气不错,原来是符号问题,pkg-config --cflags --libs opencv4俩边的符号不是单引号,而是esc键下面的` 符号,不知道叫啥。。改过来之后运行成功。
在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001)_第14张图片(2)
上图中可以看到g++时加了-std=c++11进行编译,因为我使用的是g++5.4.0版本,默认不支持c11标准。

至此第一篇博客完结,希望能在一些细小方便对各位有所帮助。

你可能感兴趣的:(在ubuntu16.04下安装opencv4.1.1(借鉴多篇的成果,爬了些许坑)(001))