在GitHub上有一位大神写了Ubuntu下安装OpenCV的脚本,可以一次性在线安装好OpenCV,我觉得很具有参考意义,但是里面很多的东西不是很懂,然后就自己专研了半天,给这个脚本添加了注释,并且修改了一些地方,让大家安装的同时能够懂得到底安装了什么,路径是什么。
下面是大神的原脚本:
version="$(wget -q -O - http://sourceforge.net/projects/opencvlibrary/files/opencv-unix | egrep -m1 -o '\"[0-9](\.[0-9])+' | cut -c2-)" echo "Installing OpenCV" $version mkdir OpenCV cd OpenCV echo "Removing any pre-installed ffmpeg and x264" sudo apt-get -qq remove ffmpeg x264 libx264-dev echo "Installing Dependenices" sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libtiff4-dev libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg echo "Downloading OpenCV" $version wget -O OpenCV-$version.tar.gz http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/$version/opencv-"$version".tar.gz/download echo "Installing OpenCV" $version tar -xvf OpenCV-$version.tar.gz cd opencv-$version mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON .. make -j 4 sudo make install sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' sudo ldconfig echo "OpenCV" $version "ready to be used"
使用的时候只要把这个这个脚本用.sh后缀的文件保存起来,例如install_opencv_online.sh,然后将其设置为可执行文件,命令是chmod u+x install_opencv_online.sh,然后通过./install_opencv_online.sh来运行就好了。 下面是我对这个脚本的理解注释,改动了一些,我自己尝试了安装没有问题,大家也可以参考,如有问题恳请联系。
#从官网获取OpenCV最新的版本 version="$(wget -q -O - http://sourceforge.net/projects/opencvlibrary/files/opencv-unix | egrep -m1 -o '\"[0-9](\.[0-9])+' | cut -c2-)" echo "Installing OpenCV" $version #新建并且移动到目录OpenCV mkdir OpenCV cd OpenCV #删除原来的视频编码器ffmpeg和视频解码器x264,为何要删除,可能是因为要重新安装吧 echo "Removing any pre-installed ffmpeg and x264" sudo apt-get -qq remove ffmpeg x264 libx264-dev echo "Installing Dependenices" #安装OpenCV依赖的组件,好多呀,其实很多组件一般的Ubuntu都安装了,只是作者要保证万无一失而已; #所有软件包的含义都在本脚本最后,可以参考 #下面是OpenCV官网说明必须安装的 -qq的意思是不输出安装内容,除非出错了,大家也可以选择不要这个选项 sudo apt-get -qq install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev #下面是OpenCV官网说明选择安装的 sudo apt-get -qq install libtiff4-dev libjpeg-dev libpng-dev libjasper-dev libdc1394-22-dev #下面安装刚才卸载的ffmpeg和x264 sudo apt-get -qq install ffmpeg x264 #下面都是这个脚本原作者安装的,其实我都没装,如果安装后使用有问题的同学可以尝试安装下面的组件 #sudo apt-get -qq install yasm libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg libopencv-dev checkinstall #下载最新的OpenCV库文件; echo "Downloading OpenCV" $version wget -O OpenCV-$version.tar.gz http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/$version/opencv-"$version".tar.gz/download echo "Installing OpenCV" $version #解压缩下载到的文件; tar -xvf OpenCV-$version.tar.gz #进入解压后得到的目录,并且新建目录build,然后进入build目录,这个目录的名字应该是可以自己定义的; cd opencv-$version mkdir build cd build #定义安装目录,大家可以定义自己的安装目录 install_path = /home/zrinekr/ProgramFiles #用平台无关工具cmake生成与平台相关的makefile文件; cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$install_path .. #-D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON .. #使用makefile文件进行编译; make -j 4 #编译好了自然是要安装了; sudo make install #安装好后进行环境变量的设置,这里大家可以找一下安装后的lib目录,我的好像直接装到了根目录下,可能有问题吧。 sudo sh -c 'echo "/lib" > /etc/ld.so.conf.d/opencv.conf' #立即加载环境变量; sudo ldconfig echo "OpenCV" $version "ready to be used" #相关软件包的含义 #所有包的含义都可以到http://packages.ubuntu.com/里查到,这里我好奇就查了一下; #1. libopencv-dev: 看名字就知道是OpenCV的开发包,官网原文“development package necessary for development of OpenCV”; #2. build_essential: 用于编译debian的软件包,官网原文“build debian package”; #3. checkinstall: 关于安装的包,就是安装软件的时候可以跟踪所有新建的文件并且做好记录,方便以后卸载; #4. cmake: 这个比较出名,一个与平台无关的预编译工具,可以将我们的软件包的源码“预编译”生成本地可以直接“编译”的makefile文件; #5. pkg-config: 看不太懂,“pkg-config is a system for managing library compile and link flags that works with automake and autoconf.” #6. yasm: 一个NASM的组装工具,NASM是啥?——“Yasm is a complete rewrite of the NASM assembler” #7. libtiff4-dev,libjpeg-dev: 支持tiff,jpeg图片格式的一个库,搞CV的肯定知道tiff; #8. libjasper-dev: 操作jpeg2000格式的图像文件的软件集合; #9. libavcodec-dev: 来自于ffmpeg的编码器库,可以编码MPEG,DivX,MPEG4,AC3等格式的视频; #10. libavformat-dev: 同样来自于ffmpeg的音频-视频分离器(demuxer libaray)软件库; #11. libswcale-dev: 来自于ffmpeg的视频尺度变换库(包含头文件和静态库文件); #12. libc1394-22-dev: IEEE 1394接口的相机的高级编程接口; #13. libxine-dev: 音乐播放器"Xine"的编程接口以及文档; #14. libgstreamer0.10-dev: 操作流媒体的开发框架; #15. libgstreamer-plugins-base0.10-dev: 上面说的是框架,这个软件包就是上面那个框架的插件了,这个插件是保证基本功能(base); #16. libv4l-dev: 视频从linux到设备的一个虚拟层, vedio for (4) linux; #17. python-dev: python的头文件和静态库以及开发工具 #18. python-numpy: 提供一个强大的python数值计算接口,可以和C\C++, FORTRAN连接; #19. libtbb-dev: 利用多核处理进行并行计算的接口,并不需要编程者实际操作; #20. libqt4-dev: 这个就是Qt的库啦,Qt可以使用OpenCV但是不一定这样安装吧,反正我是不用的; #21. libgtk2.0-dev: gtk+是多平台的图形用户接口; #22. libfaac-dev: ACC 音频编码器,ACC是啥呀? #23. libmp3lame-dev: 一看就知道是和mp3音频文件相关的了; LAME包含了mp3在内的很多音频编码器; #24. libopencore-amrnb-dev,libopencore-amrwb-dev: 语音编码器,这都能用得到?"Adaptive Multi Rate (AMR) speech codec."; #25. libtheora-dev: 视频压缩编码器 Theora; #26. libvorbis-dev: 音频编压缩码器 Vorbis; #27. libxvidcore-dev: Xvid,开源MPEG4 视频编码器; #28. x264,ffmpeg: 就是刚才卸载的视频解码器和编码器了; #29. v4l-utils: 第16个软件包的命令集合;