做立体匹配需要学习一下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安装,
我根本就没弄懂原理,先放着,以后再弄懂吧。