参考:https://blog.csdn.net/cocoaqin/article/details/78163171
参考:https://blog.csdn.net/cocoaqin/article/details/78376382?utm_source=debugrun&utm_medium=referral
参考:https://blog.csdn.net/qq_30401249/article/details/51564871
以下是结合引用的文章,加上我所遇到的错误,将教程更加清晰化,感谢大佬的帮助。这个安装会一直维护,如果有安装遇到别的问题,欢迎留言,会更新到教程里面的。
环境:
Ubuntu 16.04
软件:
opencv :opencv-3.4.4.zip
安装步骤:
1、去官网下载opencv,在本教程中选用的时opencv3.4.4,其他版本的配置方法异曲同工。
下载链接http://opencv.org/releases.html,选择sources版本
为了同意后面的路径,将下载的 opencv 统一放到 ~/dev/ 目录下
然后进入目录:
# 创建文件夹的指令是(为了操作方便,统一放到这里方便跟着教程走)
# makedir ~/dev/
cd ~/dev/
2.解压下载下来的zip包(找不到是因为你没有把下载下来的包存放到~/dev/ 文件夹下)
unzip opencv-3.4.1.zip
3.安装依赖库和cmake ,如果提醒需要apt-get update,那就先sudo su进入root权限,再sudo apt-get update,然后在执行下面命令
# 安装cmake,可能已经安装过,请照常执行
sudo apt-get install cmake
# 安装依赖,可能已经安装过,请照常执行
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
4.安装完cmake之后执行命令 ,创建编译文件夹,不创建的会提示(如下图)
In-source builds are not allowed.
mkdir my_build_dir
cd my_build_dir
5.cmake一下
# 注意:如果已经在新的文件夹中编译,但是还会出现之前的报错,把 cmakecache.txt(位于opencv的根目录里面) 删了再编译就可。同时,有些时候可能初次执行 cmake 后改变了文件夹,提示有缓存,文件夹不对,只要删除了 cmakecache.txt 再重新 cmake 即可
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
期间可能会下载一个东西,等待一会儿就OK(如果真的直接OK说明真的运气好,反正我的显示下载的时候超时) 了么?
不必担心,超时了那就下载一个离线的进行安装吧,关于如何下载离线的进行安装,为了不影响阅读,我放到了后面,遇到问题可自行查看(请在本页键入 ctrl+f 浏览器查找 下载超时 关键词)。
7.执行命令,漫长的编译过程,
# 这一步时间可能会比较久,我的笔记本 i5-6300h,用了大概半个小时,所以,去喝杯茶咯
sudo make
8.执行命令(用时较短)
sudo make install
9.sudo make install 执行完毕后OpenCV编译过程就结束了,接下来就需要配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到
sudo gedit /etc/ld.so.conf.d/opencv.conf
执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加
/usr/local/lib
10.执行如下命令使得刚才的配置路径生效
sudo ldconfig
关于这一步,我的执行没有出现问题,根据我参考的文章(在顶部)提示,出现错误解决方法可以前去链接。
11.配置bash
sudo gedit /etc/bash.bashrc
在最末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存,执行如下命令使得配置生效
source /etc/bash.bashrc
更新
sudo updatedb
12.至此所有的配置都已经完成
下面用一个小程序测试一下
找到
cd到opencv-3.4.4/samples/cpp/example_cmake目录下
cd ~/dev/opencv-3.4.4/samples/cpp/example_cmake
执行 ls 我们可以看到这个目录里官方已经给出了一个cmake的example我们可以拿来测试下
按顺序执行
# 查看目录下的文件,可略过
ls
cmake .
make
./opencv_example
即可看到打开了摄像头,在左上角有一个hello opencv。
这个可以检测你鼠标所在位置的通过摄像头获取的数据的RGB值
OK,恭喜,配置成功!
NEXT: 配置opencv的GPU加速,有时间再做
关键词:下载超时!
下载超时怎么办呢?
begin
1,比如下载 ippicv_2019_lnx_intel64_general_20180723.tgz
手动下载 ippicv_2019_lnx_intel64_general_20180723.tgz
参考下载地址(希望各位多多支持,整理不易):
保存路径随意,我是放在默认的下载路径~/Downloads/下载
2,修改opencv里相关配置文件
打开终端,输入
# 就是这个文件的路径,在这里opencv 去下载资源,我们将其获取方式改为本地文件获取
# 这里注意版本号,如果你的不是3.4.4的话请将下面的改成你相应的版本号
gedit ~/dev/opencv-3.4.4/3rdparty/ippicv/ippicv.cmake
将47行的
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
# 改为手动下载的文件的本地路径:
"file:~/Downloads/" #(仅供参考,根据自己的路径填写)
编辑完成保存退出。
3,重新cmake
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
到了下载ippicv那一步时会自动从本地下载。
如果成功的话,会提示:
--
-- Python (for build): /usr/bin/python2.7
--
-- Java:
-- ant: NO
-- JNI: NO
-- Java wrappers: NO
-- Java tests: NO
--
-- Install to: /usr/local
-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xxx/dev/opencv-3.4.4/my_build_dir
END
关键词:YOLO
begin
注意:
出现错误:
/bin/sh: 1: nvcc: not found
make: *** [obj/convolutional_kernels.o] Error 127
解决方法:
# 修改makefile, 根据自己的 nvcc 路径更改
NVCC = /usr/local/cuda/bin/nvcc