首先如果你的运气足够好,你完全可以按照 :
https://my.oschina.net/u/1757926/blog/293976
或者OpenCV中文论坛上的Linux下opencv的安装方法
但是我的运气不好,上述两种方法安装不了,参考这个:链接
- 由于opencv的cmakelist里依赖一些库,所有要先配置好这些库,我主要是ffmpeg和x264很烦人: 保险起见,先去除你电脑上的这些重新装.
sudo apt-get remove ffmpeg x264 libx264-dev
- 安装其他依赖库.
sudo apt-get update
sudo apt-get install build-essential checkinstall Git cmake libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev texi2html yasm zlib1g-dev - 安装gstreamer,主要是opencv里头的相机模块用到
sudo apt-get install libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg
- 安装,接着安装
sudo apt-get install libgtk2.0-0 libgtk2.0-dev
-
sudo apt-get install libjpeg8 libjpeg8-dev
- 安装 install x264
- Download a recent stable snapshot of x264 from
ftp://ftp.videolan.org/pub/videolan/x264/snapshots/. The exact
version does not seem to matter. To write this guide, I used version
x264-snapshot-20120528-2245-stable.tar.bz2, but I have used previous
versions too.
cd ~/src
wget ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20120528-2245-stable.tar.bz2
tar xvf x264-snapshot-20120528-2245-stable.tar.bz2
cd x264-snapshot-20120528-2245-stable
-
./configure
--enable-shared --enable-pic
make
sudo make install--enable-shared --enable-pic
/usr/bin/ld: /usr/local/lib/libavcodec.a(avpacket.o): relocation R_X86_64_32S against `av_destruct_packet' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libavcodec.a: could not read symbols: Bad value
- Download a recent stable snapshot of x264 from
ftp://ftp.videolan.org/pub/videolan/x264/snapshots/. The exact
version does not seem to matter. To write this guide, I used version
x264-snapshot-20120528-2245-stable.tar.bz2, but I have used previous
versions too.
- 安装ffmpeg
- Download ffmpeg version 1.2 from http://ffmpeg.org/download.html.PS:装ffmpeg-0.11.1编译不通过,报错:
- /usr/local/lib/libswscale.a(swscale_unscaled.o):
relocation R_X86_64_32S against `av_pix_fmt_descriptors@@LIBAVUTIL_52'
can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libswscale.a: error adding symbols: 错误的值
collect2: error: ld returned 1 exit status
make[2]: *** [lib/libopencv_highgui.so.2.4.9] 错误 1
make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] 错误 2
make: *** [all] 错误 2
猜可能是opencv249依赖的ffmpeg版本不对照
cd ~/src
wget http://ffmpeg.org/releases/ffmpeg-1.2.tar.bz2
tar xvf ffmpeg-1.2.tar.bz2
cd ffmpeg-1.2
-
./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab --enable-shared --enable-pic
make
sudo make install
- 安装v4l (video for linux) from
http://www.linuxtv.org/downloads/v4l-utils/.
报错:dvb-v5.h:69:9: error: ‘NULL’ undeclared here ........
原因是v4l的版本不对,于是我装了v4l 1.0.0
wget http://www.linuxtv.org/downloads/v4l-utils/v4l-utils-1.0.0.tar.bz2
-
tar xvf v4l-utils-1.0.0.tar.bz2
cd v4l-utils1.0.0
make
sudo make install - 安装OpenCV 2.4.9.
- Download OpenCV version 2.4.2 from
http://sourceforge.net/projects/opencvlibrary/files/
cd ~/src
wget http://downloads.sourceforge.Net/project/opencvlibrary/opencv-unix/2.4.9/OpenCV-2.4.9.tar.bz2
tar xvf OpenCV-2.4.9.tar.bz2
- Create a new build directory and run cmake:
cd OpenCV-2.4.9/
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE .. - 验证指定的输出包括以下内容:
- found gstreamer-base-0.10
- GTK+ 2.x: YES
- FFMPEG: YES
- GStreamer: YES
- V4L/V4L2: Using libv4l
- Build and install OpenCV.
make
sudo make install
- Download OpenCV version 2.4.2 from
http://sourceforge.net/projects/opencvlibrary/files/
- Configure 配置 Linux.
- Tell linux where the shared libraries for OpenCV are located by entering the following shell command:[告诉Linux的共享库OpenCV是通过输入下面的shell命令,也就是其库文件存放的位置]:
export LD_LIBRARY_PATH=/usr/local/lib
Add the command to your .bashrc file so that you don’t have to enter every time your start a new terminal.该命令添加到你的.bashrc文件,这样你就不需要进入你的每一次开始一个新的终端。
Alternatively, you can configure the system wide library search path. Using your favorite editor, add a single line containing the text
/usr/local/lib
to the end of a file named/etc/ld.so.conf.d/opencv.conf
. In the standard Ubuntu install, the opencv.conf file does not exist; you need to create it. Using vi, for example, enter the following commands:[或者,您可以配置系统范围的库搜索路径。用你喜欢的编辑器,添加一行文本/usr/local/lib...to the end of a file named/ etc / ld.so.conf.d/opencv.conf。在标准的Ubuntu的安装,opencv.conf文件不存在;你需要创建它。例如,使用VI,输入以下命令:]sudo vi /etc/ld.so.conf.d/opencv.conf
G
o
/usr/local/lib
<Esc>
:wq!After editing the opencv.conf file, enter the following command:
sudo ldconfig /etc/ld.so.conf
- Using your favorite editor, add the following two lines to the end of /etc/bash.bashrc:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
- Tell linux where the shared libraries for OpenCV are located by entering the following shell command:[告诉Linux的共享库OpenCV是通过输入下面的shell命令,也就是其库文件存放的位置]:
c.After completing the previous steps, your system should be ready to compile code that uses the OpenCV libraries. The following example shows one way to compile code for OpenCV:
g++ `pkg-config opencv --cflags` my_code.cpp -o my_code `pkg-config opencv --libs`
就这样吧.....最好按照步骤来,先装好依赖库再搞别的...