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的好。
乖宝,要努力!
参考博客:http://blog.csdn.net/PiaoLiangHXD/article/details/52693568