做立体匹配需要学习一下opencv里的SGBM算法,网上教程挺多,在此记录一下配置过程个人中出现的问题。

1.依赖库

安装编译工具
sudo apt-get install build-essential
安装依赖包
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
安装可选包
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev


建议:一个一个apt-get install XXX,并在提示已经是最新版本后再安装下一个,否则不能进行下一个包的安装或者下一步!!!!

本人在安装过程中主要是几个包的问题 (1) libgtk2.0-dev (2)pkg-config,这两个非常关键,不成功的话,即使编译链接完成opencv源码,依然不会成功运行程序。其他的也要一个一个装,别嫌麻烦。pkg-config可能需要另行查找教程安装。apt记得 update一下,可能在某个时候好使。


2.源码下载

opencv有2和3之分,无论去什么地方,去下个源码,zip或者什么格式的,解压下。本人装的v2.4.13.4.


3.编译链接


打开文件夹"opencv-2.4.13":cd opencv-2.4.13


新建一个文件夹用于存放临时文件:mkdir release


切换到该临时文件夹:cd release


开始编译:cmake -D CMAKE_BUILD_TYPE=RELEASE-D CMAKE_INSTALL_PREFIX=/usr/local  ..


make -j4 //开启线程 按照自己的配置


sudo make install



注意:新建文件夹是必须的,cmake不允许在源码中乱七八糟地编译,make -j4时间可能较长。其他的没啥。


4.配置环境


将opencv的库加入到路径,从而让系统可以找到

sudo gedit /etc/ld.so.conf.d/opencv.conf

末尾加入 /usr/local/lib ,

保存退出

(文件可能为空,无所谓)



sudo ldconfig 使配置生效



sudo gedit /etc/bash.bashrc 


末尾加入

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

export PKG_CONFIG_PATH

保存退出



sudo source /etc/bash.bashrc #使配置生效

(该步骤可能会报错找不到命令,原因是source为root命令su(进入root权限)输入密码

source /etc/bash.bashrc

Ctrl+d(退出root)

sudo updatedb #更新database


注意:可以直接进su命令root 可以少点麻烦。这个没啥大问题。


5.实例测试

网上很多,然而,可以在ubuntu上装一个codelocks然后新建一个opencv项目的话,以后就方便了,

使用codeblocks,记得在项目设置里把头文件和库文件包含进去,可以在去找其他教程。


6.其他

opencv很重要,是好多开源代码的依赖库,非常有必要学习下,爱信不信。

我试着照着自己写的装了一下,失败了,在/usr/local/lib下根本没有编译成功的opencv库文件.也没有pkg-config文件夹和里面的opencv.pc文件

,可能的原因是pkg-config没有安装成功,需要再搜索pkg-config的安装教程,再单独安装一下,然后再重新来一边opencv安装,

我根本就没弄懂原理,先放着,以后再弄懂吧。