make的时候出现error: 'ptrdiff_t' does not name a type造成编译错误,这个也是我搞来很多次没有成功只好选择系统库中自带的opencv。具体原因是没有加一个命名空间。具体可以见:http://web.archiveorange.com/archive/v/b6fbFdu0fh9uQC9aVdpF,只要在cxcore.hpp的命名空间地方加入(cxcore.hpp的位置在要根据你编译的时候出现的错误的位置来确定。):
using std::ptrdiff_t;具体的安装opencv2.2的步骤可以参见:http://www.samontab.com/web/2011/06/installing-opencv-2-2-in-ubuntu-11-04/
2、No accelerated colorspace conversion found from yuv422p to bgr24
这是在显示视频的时候(一般是avi格式)可能出现的问题,解决办法是要安装x264和libvpx(别执行,先看下面)
sudo apt-get update sudo apt-get install build-essential checkinstall git 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 texi2html yasm zlib1g-dev
cd git clone git://git.videolan.org/x264 cd x264 ./configure --enable-static make sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \ awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \ --fstrans=no --default
sudo apt-get remove libvpx-dev cd git clone http://git.chromium.org/webm/libvpx.git cd libvpx ./configure make sudo checkinstall --pkgname=libvpx --pkgversion="1:$(date +%Y%m%d%H%M)-git" --backup=no \ --deldoc=yes --fstrans=no --default
根据自己的测试,其实不用安装上面的东西就可以,单纯的安装ffmpeg就可以来。
cd ~ wget http://ffmpeg.org/releases/ffmpeg-0.7-rc1.tar.gz tar -xvzf ffmpeg-0.7-rc1.tar.gz cd ffmpeg-0.7-rc1 ./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libxvid --enable-x11grab --enable-swscale --enable-shared make sudo make install
3、Qt下的opencv2.2环境配置
配置opencv文件:
sudo gedit /etc/ld.so.conf.d/opencv.conf
添加如下内容
/usr/local/lib
启用配置
sudo ldconfig
再打开另一个配置文件
sudo gedit /etc/bash.bashrc
在其最后添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH
拷贝库:
sudo cp /usr/local/lib/python2.7/site-packages/cv.so /usr/local/lib/python2.7/dist-packages/cv.so
可以直接在pro文件下添加包含路径以及库的路径,不用修改配置文件。
INCLUDEPATH += /usr/local/include/opencv LIBS += /usr/local/lib/libopencv_core.so \ /usr/local/lib/libopencv_highgui.so \ /usr/local/lib/libopencv_imgproc.so \ /usr/local/lib/libopencv_objdetect.so \ /usr/local/lib/libopencv_video.so
其中需要注意的几个:
video.so是cvUpdateBGStatModel等更新以及建立背景模型需要用到的库
imgproc.so是对图像进行处理比如cvtColor等函数需要用到的库
objdetect.so是跟踪需要用到的,比如人脸识别需要用到这个库。
csdn博客编辑太T&M垃圾了。一会再写。