Ubuntu 14.04安装 OpenCV 2.4.9
OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的IPP进行加速处理。
在本指南中,我将告诉你如何在ubuntu14.04(lts)中安装OpenCV。ok,让我们开始吧~
更新源
首先将源更新为阿里云源
1 | sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份 |
下载依赖环境
现在,你需要安装很多相关性,比如支持读取和写入图像文件,在屏幕上绘制,一些必要的工具,其他图书馆,等等…这一步是很容易的,你只需要在终端上写下面的命令:
1 | sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen3-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev default-jdk ant libvtk5-qt4-dev |
下载OpenCV
1 | #切换到家目录 |
编译
现在我们通过使用cmake生成Makefile文件。在这里我们可以定义我们要编译OpenCV的哪个部位。既然我们要使用的即模块,Python和Java的,TBB时,OpenGL,QT,与视频接口的调用等等,这里是我们需要来设置。而就在终端执行以下命令行来创建相应的Makefile文件。请注意,有在该行的最后两个点,它是为cmake的程序参数,这意味着父目录(因为我们是build目录里面,我们要参考OpenCV的目录,这是它的父目录)。
1 | #创建编译目录 |
检查上面的命令不会产生错误,并且特别是报告FFMPEG为YES。如果不是这种情况下,你将无法读取或写入视频。检查使用Java,Python,TBB,OpenGL的,V4L,OpenGL和Qt的都正确检测。
确保你向上滚动,并检查了将要构建的模块是这些:core flann imgproc highgui features2d calib3d ml video legacy objdetect photo gpu ocl nonfree contrib java python stitching superres ts videostab viz.
好,万事俱备,开始编译OpenCV-2.4.9。
1 | make |
如果这里报如下错误的话
1 | Building NVCC (Device) object modules/core/CMakeFiles/cuda_compile.dir/src/cuda/Debug/cuda_compile_generated_gpu_mat.cu.obj |
注意: 你需要用这个参数 CUDA_GENERATION 来指定GPU显卡的架构,例如你的显卡是 Titan显卡(包括GTX 900系列)的架构是比较新的Maxwell架构,应该在cmake 参数命令中增加 ‘-D CUDA_GENERATION=Kepler’ 虽然Kepler架构是Maxwell架构的上一代,但是这样配置也可以成功。
**注意:**中途可能会报错
1 | opencv-2.4.9/modules/gpu/src/nvidia/core/NCVPixelOperations.hpp(51): error: a storage class is not allowed in an explicit specialization |
解决方法在此:http://code.opencv.org/issues/3814 下载 NCVPixelOperations.hpp 替换掉opencv2.4.9内’/modules/gpu/src/nvidia/core/‘下重名文件, 重新build。
配置环境变量
配置OpenCV库引用(类似于windows环境变量)
1 | sudo gedit /etc/ld.so.conf.d/opencv.conf |
添加下面一行在文件末尾(它可能是一个空文件,这是确定的),然后将其保存:
1 | /usr/local/lib |
输入下面的命令使其生效
1 | sudo ldconfig |
现在打开另一个文件
1 | sudo gedit /etc/bash.bashrc |
添加这两行的文件的末尾并保存:
1 | PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig |
注意: 关闭控制台,打开一个新的终端,或者重新启动计算机或注销,然后重新登录。不然OpenCV将无法正常工作。现在你有OpenCV的2.4.9安装在您的计算机三维可视化,Python和Java的,TBB,OpenGL的,视频和Qt支持。
运行Demo
现在,让我们来编译运行OpenCV包中的一些例子,输入下面的命令
1 | cd ~/opencv-2.4.9/samples/c |
这些例子使用了旧版本的 C 接口,
1 | ./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --nested-cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_eye.xml" --scale=1.5 lena.jpg |
鼠标滚轮滑动,可以直接看到图像像素对应的RGB数值。
再运行一个例子,输入下面的指令
1 | ~/opencv-2.4.9/build/bin/cpp-example-calibration_artific |