1、opencv的安装
1.1 安装依赖库
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
sudo apt-get install -y libopencv-dev
sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev # 处理图像所需的包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
sudo apt-get install ffmpeg
1.2 下载opencv
opencv可以通过下面两个链接下载
https://github.com/Itseez/opencv/archive/2.4.13.zip (针对2.4.13版本)
各个发布版:http://opencv.org/releases.html
github :https://github.com/opencv
值得注意的是,opencv4.0以上的版本无法使用之前的lsd算法,不过有一个替代lsd的算法,FastLinesDetector类
1.3 下载之后,执行下面的指令:
cd opencv-2.4.13 #进入opencv文件夹(我用的是2.4.13)
mkdir build #新建一个文件夹用于存放临时文件
cd build #切换到该临时文件夹
#开始编译,此处/usr/local为安装目录,可以自己改,改了之后后面加环境变量也要同时改
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j4 #编译,开启线程 按照自己的配置
sudo make install #编译成功后安装,此处用sudo,因为要在/usr/local路
#径下创建相关文件,必须root权限
1.4 验证opencv是否安装成功
1.4.1 第一种办法:执行以下指令,会输出opencv的版本号:
pkg-config --modversion opencv
1.4.2 第二种办法
输入以下指令:
如果输出了版本号或者像上图一样,那么就安装好了。
1.5 在安装完,使用前,我们需要对opencv进行环境方面的配置
1.5.1 环境配置添加库的路径
sudo gedit /etc/ld.so.conf.d/opencv.conf
#打开后可能是空文件,在文件内容最后添加
/usr/local/lib
1.5.2 更新系统的配置
sudo ldconfig
1.5.3 配置bash,执行如下命令
sudo gedit /etc/bash.bashrc
# 在末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
1.5.4、保存退出,然后执行如下命令使得配置生效
source /etc/bash.bashrc
# 激活配置然后更新database
sudo updatedb
在这一步可能会有执行source不成功的现象,需要你自己看一下当前的默认shell是bash还是zsh,这一步可以通过以下的命令来做:
echo $SHELL
或者
ps
//查看当前的进程中,可以看到shell的类型
如果不是bash的话,需要将zsh切换到bash,具体做法是:
执行下面的指令:
chsh -s /bin/zsh
在此之后,需要将当前所有打开的终端全部关闭,之后再次打开即可生效
1.6 可能的错误
1.6.1 error while loading shared libraries: libopencv_core.so.3.4: cannot open share
原因:从这个提示可以知道系统找不到libopencv_core.so.3.4在哪儿,而系统是通过/etc/ld.so.conf中的路径找.so这个文件的。将libopencv_core.so.3.4的路径加入到.conf文件中就可以了。.so文件一般存放在/usr/local/lib目录下。
主要用过下面两个方式,其实是一样的,只是过程不同罢了
解决方法1:
对ld.so.conf这个文件进行编辑是需要获取超级权限的。
cd ~ //先返回到根目录
sudo vim /etc/ld.so.conf //获取超级权限,并用vim编辑器打开该文件
然后在末尾加入/usr/local/lib即可
退出后执行下面的语句使之生效
sudo ldconfig
然后就可以正常导入了
解决方法2:
如果执行程序显示找不到opencv可以执行下面的命令
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
原博客的地址:
ubuntu里面使用g++编译opencv程序的时候,编译的命令如下所示:
g++ filename.cpp -o filename 'pkg-config --cflags --libs opencv' -std=c++11