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 第二种办法

输入以下指令:

Linux上直接使用opencv opencv for linux_linux


如果输出了版本号或者像上图一样,那么就安装好了。

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