安装opencv的时候比较曲折,特来做此笔记来记录一下。
借鉴的资料有:
安装步骤:https://blog.csdn.net/cocoaqin/article/details/78163171
linux的命令:http://man.linuxde.net/mkdir
sudo的问题:https://www.cnblogs.com/yves/p/4668837.html
1, 首先进行从 http://opencv.org/releases.html 下载source版本opencv3.3.1(或是其他版本的也可以,安装方法是异曲同工的)的压缩包,也可以是从其他方式获得这个压缩包。
2,解压下载下来的压缩包。
unzip opencv-3.3.1.zip
(等一下,需要点时间)
3.进入到解压后的文件包中,我的是cd opencv-3.3.1(cd是进入的意思)
4,安装依赖库和cmake,如果提醒需要apt-get update,那就先sudo su进入root权限,再sudo apt-get update,然后在执行下面命令
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
5,安装完cmake之后,执行命令,创建cmake文件夹不创建的会提示(如下图)
In-source builds are not allowed.
(PS:mkdir 名字。就是创建一个这样的文件夹)
mkdir my_build_dir
cd my_build_dir
6,cmake一下
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
注意:如果已经在新的文件夹中编译,但是还会出现之前的报错,把cmakecache.txt删了再编译就可
期间可能会下载一个东西,等待一会儿就OK
7,然后执行命令make,这个需要较长的时间
sudo make
(PS:如果知道自己是几核的电脑,可以写make -j8或者make -j4.这样可以充分的利用多核的优势,编译的快一些)
8,执行命令,进行安装
sudo make install
到这里安装过程就结束了,接下来的就是配置了。
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥前方高能:!!!!!!!!!!!!!!!!!!!!
9,首先,我们要配置opencv的一些编译环境。让opencv的库添加到路径,让系统可以找到opencv(这一点在windows下配置过opencv的小伙伴是知道的)
cd~
gksudo gedit /etc/ld.so.conf.d/opencv.conf
注意以下事项:
[1,这就话建议在home的情况下写,就是cd~]
[2,最好使用的gksudo(需要输入密码)而不是sudo。如果使用sudo,可能会有报错如下]
gedit:2714): IBUS-WARNING **: The owner of /home/ecomu/.config/ibus/bus is not root!
(gedit:2714): Gtk-WARNING **: Calling Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
[3,还可能显示连接超时]
[4,gedit作为与nano,vi同为编辑器的gedit在这里的作用就是在某个地方创建某一个文件]
10,然后就会弹出一个文件,不管是否空白的都不要害怕,在文件里面写上,然后保存一下。(这个文件他其实就保存到computer/etc/ld.so.conf.d/opencv.conf里面了)
/usr/local/lib
11,执行下面的命令使刚刚的配置生效。
sudo ldconfig
这个时候可能会提示错误如下图所示(上部分)
sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 不是符号连接
/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 不是符号连接
出现这个错误可能是由于系统BUG所致
只需要分别输入上面图下部分的四行命令就可解决
sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1
12,配置bash
sudo gedit /etc/bash.bashrc
在最末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
13,保存,执行命令,使得上面的配置生效
source /etc/bash.bashrc
14,更新(我也不知道为什么要更新,就照着做吧)
sudo updatedb
15,到此opencv的配置就结束了。下面就用opencv自带的摄像头程序测试一下吧。
用cd 进入到opencv-3.3.1/samples/cpp/example_cmake目录下.(不要拼写错误)
[此时我们可以使用如下命令查看该文件夹下面有什么。]
ls
(实际上里面是一个cmake的example)
16,按顺序执行
cmake .
make
./opencv_example
PS:
[1,cmake是用来生成makefile文件]
[2,make来编译makefile文件]
[3,其实用make也是可以直接生成编译makefile文件的,但是由于书写makefile太过于复杂,不如使用cmake来生成更快捷和准确]
[4 ./opencv_example命令就是显示和运行这个程序]
17,这个时候,如果理想的话,就应该看到你的电脑摄像头打开了