ps:由于需要使用opencv中的VideoCapture通过rtsp协议调用摄像头,需要在安装过程中同时安装ffmpeg,否则不能调用。且ffmpeg安装必须在opencv之前,在已经安装了opencv的情况下,再安装ffmpeg,之后重新安装opencv,安装检测还是识别不到ffmpeg的组件,因此只能全部卸载重新安装。sudo apt install ffmpeg安装后,opencv安装过程中依旧无法识别到ffmpeg,因此使用ffmpeg源文件安装。
------安装ffmpeg------
1 git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
2 ./configure --enable-shared --disable-static --prefix=/usr/local/ffmpeg
3 make
4 sudo make install
ffmpeg -version检查是否安装成功
ps:检查版本时遇到ffmpeg command not found
1.在/usr/local/ffmpeg/bin/ffmpeg -version 下尝试。
2.如果1不行,说明没有设置环境变量,将ffmpeg添加到环境变量中:
sudo vim /etc/profile 添加
export FFMPEG_PATH=/usr/local/ffmpeg
export PATH=$PATH:/usr/local/ffmpeg/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ffmpeg/lib
执行 source /etc/profile 使环境变量生效。
ps:修改后在该终端可以验证ffmpeg,需要重启才可以在新建终端中验证ffmpeg。
ps:还可修改~/.bashrc文件,修改后source ~/.bashrc
vim ~/.bashrc 添加ffmpeg路径:/usr/local/ffmpeg/bin:
添加前:
export PATH=/home/uihost/bin:$PATH
添加后:
export PATH=/home/uihost/bin:/usr/local/ffmpeg/bin:$PATH
------安装OpenCV------
1.安装软件包
1 sudo apt install build-essential
2
3 sudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
4
5 sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
ps:errorE: unable to locate libjasper-dev 解决:在etc/apt/sourcrs.list 文件后面添加deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse。sudo apt update;sudo apt upgrad;sudo apt install libjasper1 libjasper-dev。
2.下载source源文件
3.使用CMake构建:
进入解压出来的OpenCV-x.x.x文件夹,创建一个新文件夹build。进入文件夹build。
sudo cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_FFMPEG=ON ..
sudo make -j4
sudo make install
4.配置环境:
sudo vim /etc/ld.so.conf.d/opencv.conf
添加/usr/local/lib
sudo ldconfig
sudo vim /etc/bash.bashrc
添加 PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
source /etc/bash.bashrc
sudo updatedb
配置完成
附:
1.关于pkg-config包
安装前先安装了pkg-config包,这个软件向用户向程序提供相应库的路径、版本号等信息的程序。
eg.
pkg-config 查看用gcc编译链节opencv时的CFLAGS参数
pkg-config --libs --cflags opencv
因此当我们需要编译连接某个库时,我们只需要把上面那行加入gcc 的参数里面即可。这也是configure的作用:它会检查你需要的包,产生相应的信息。
工作方式:
首先在/usr/lib/pkconfig/中查找相关包(譬如opencv)对应的相应的文件(opencv.pc)若是没有找到,它也会到PKG_CONFIG_PATH这个环境变量所指定的路径下去找。若是没有找到,它就会报错。设置环境变量PKG_CONFIG_PATH方法举例如下export PKG_CONFIG_PATH=/cv/lib:$PKG_CONFIG_PATH
2.关于source
source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
在Ubuntu中有如下几个文件可以设置环境变量
1、/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
2、/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。
3、~/.bash_profile:在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
4、~/.bashrc:该文件包含专用于你的bash shell的bash信 息,当登录时以及每次打开新的shell时,该该文件被读取。