opencv学习(3 )-在unbuntu中搭建opencv运行环境

opencv在xocde上虽然可以实现功能,但要满足将之与机器人链接,还不够,Linux下可以很好的满足我们的需求。所以简单记录一下过程。(全过程需联网)

更新Ubuntu系统至最新版

sudo apt-get update  sudo apt-get upgrade

sudo apt-get update

sudo apt-get upgrade

安装必要组件

安装过程参考了很多教程,如下总结截止到2016年9月28日下的(我能够使用的)最新版本:

sudo apt-getinstall build-essentiallibgtk2.0-devlibjpeg-devlibtiff5-devlibjasper-devlibopenexr-devcmake python-devpython-numpypython-tklibtbb-devlibeigen3-devyasm libfaac-devlibopencore-amrnb-devlibopencore-amrwb-devlibtheora-devlibvorbis-devlibxvidcore-devlibx264-devlibqt4-devlibqt4-opengl-devsphinx-commontexlive-latex-extralibv4l-devlibdc1394-22-devlibavcodec-devlibavformat-devlibswscale-devdefault-jdkant libvtk5-qt4-devqt5-default

需要安装的组件较多,有些教程会给出sh脚本一步安装,但是我本人不是很建议。我在安装以上组件中经,常遇到某组件版本较低被强行停止推荐最新版本的情况。比如libtiff4-dev被替换为libtiff5-dev,libeigen2-dev虽然没有提示,但是后期使用出问题,不得不安装了libeigen3-dev。以及qt5-default也是在之后安装出问题后google到的解决方式。我个人建议别怕累,一个一个安装,利于了解问题的出处。

下载opencv

http://opencv.org/downloads.html, 选择Version 3.3.0, OpenCV for Linux/Mac

解压在/home/opencv-3.0.0

编译opencv

在/home/parallels/opencv-3.3.0目录下新建build文件夹,进入此文件夹开始cmake:cmake-DWITH_TBB=ON-DBUILD_NEW_PYTHON_SUPPORT=ON-DWITH_V4L=ON-DINSTALL_C_EXAMPLES=ON-DINSTALL_PYTHON_EXAMPLES=ON-DBUILD_EXAMPLES=ON-DWITH_QT=ON-DWITH_OPENGL=ON-DWITH_VTK=ON..

需要注意的是,这个过程不仅耗时,而且容易出bug。如果中途停止,要仔细检查错误信息,一般错误都来自于之前安装的组件不完整或者不匹配。一般来说重新安装之后就可以正常编译。

另外要观察编译后的结果,要确保FFMPEG没有错误,并且Java, Python, TBB, V4L, OpenGL 和 Qt 被成功检测到(最直观的就是其状态是YES)。

在编译最开始的地方,即OpenCV modules处,提示To be built至少包括以下模块:core flann imgproc highgui features2d calib3d ml video legacy objdetect photo gpu ocl nonfree contrib Java python stitching superres ts videostab viz。顺序可能不同,可能增减。增多没有关系,若有减少,要提前记下,有可能编译虽然成功,但是影响OpenCV之后的正常使用。

安装opencv

在/home/parallels/opencv-3.3.0目录下:

make

sudo make install

此过程非常非常非常缓慢,而且极其容易出错。make过程出的错都是之前步骤没有做好(组件漏安装、组件版本过旧等等等等)。我自己make了三遍,第一遍在56%的地方停住了,然后发现是qt5的问题,第二遍是因为libeigen3,第三遍正常make。install正常。

此过程看人品,我折腾了一个多小时。

配置环境变量

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

在opencv.conf(打开之后是空哒!但是是正确的)里加入如下语句:

/usr/local/lib

之后保存退出。然后配置库文件:

sudo ldconfig(不会在终端里显示变化)

打开另外一个文件:

sudo gedit /etc/bash.bashrc

在文档最下方(fi之后)添加:

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

exportPKG_CONFIG_PATH

之后重启虚拟机,,或者注销再登陆。

测试opencv

在home位置下新建一个opencv_code文件夹专门存放cpp文件。新建空文件,用gedit打开输入测试代码:

#include#includeusing namespace std;

using namespace cv;

int main(int argc,char **argv)

{

VideoCapture capture(0);

namedWindow("hhh",CV_WINDOW_AUTOSIZE);

while(true)

{

Mat frame;

capture>>frame;

imshow("hhh",frame);

waitKey(30);

}

return 0;

}

保存后命名为test.cpp,之后再终端下,进入opencv_code文件夹,输入:“g++ `pkg-config opencv --cflags` test.cpp -o test `pkg-config opencv --libs`”对cpp文件进行编译,生成可执行文件test。再输入“./test”运行(或者直接在文件夹下双击文件运行),如果可以打开摄像头,则大功告成。

发图纪念

在装之前一直担心是否会出现学长说的“用虚拟机会很慢”的情况,不过之后又测试了几个代码,还是可以满足要求的,第一次实实在在地感受到了Mac OX的好。

果然Linux才是opencv的原配

乖宝,要努力!

参考博客:http://blog.csdn.net/PiaoLiangHXD/article/details/52693568

你可能感兴趣的:(opencv学习(3 )-在unbuntu中搭建opencv运行环境)