在ubuntu上编写OpenCv应用程序,确实有其不少优点,虽然起初配置环境稍微麻烦一点。下面,我就OpenCv2.4.1在ubuntu 12.04 tls 上环境配置整理如下。
一,对于ubuntu 系统先要保证系统各软件是最新的。只需要这样
sudo apt-get update
sudo apt-get upgrade
二,OpenCv会依赖各种包,就需要安装下。
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 libeigen2-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
三,紧接着就是下载并解压OpenCv
wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.1/OpenCV-2.4.1.tar.bz2
tar -xvf OpenCV-2.4.1.tar.bz2
cd OpenCV-2.4.1
当然也有其它方法。比如下载的是.zip,直接unzip就可以了。
四,然后,新建个文件夹 并利用cmake 进行编译。
mkdir build
cd build
cmake -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 ..
这样就准备好了编译和安装OpenCv
make
sudo make install
五,配置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
六,最后需要重启或者注销,才能使配置生效。
下面,运行几个例子,测试OpenCv
在运行下面例子之前,需要准备下
cd ~/OpenCV-2.4.1/samples/c
chmod +x build_all.sh
./build_all.sh
1.
cd ~/OpenCV-2.4.1/samples/c
chmod +x build_all.sh
./build_all.sh
2.
./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg
3.
./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
最重要是的如何编译我们编写的OpenCv 程序。
下面,给出一个例子。直接上代码
#include <highgui.h>
#include <iostream>
using namespace std;
int main(int argc,char **argv)
{
IplImage* image = cvLoadImage("lena.jpg");
// if(argc < 2 || image==NULL)
// {
// cout<<"No image data\n";
// return -1;
// }
cvNamedWindow("Display Image",CV_WINDOW_AUTOSIZE);
cvShowImage("Display Image",image);
cvWaitKey(0);
cvReleaseImage(&image);
cvDestroyWindow("Display Image");
return 0;
}
然后,运行我们熟悉的,只不过要加上一个参数
g++ -o testopencv testopencv.cpp `pkg-config opencv --cflags --libs`
稍作解释,pkg-config命令需要跟一个.pc文件。opencv是/usr/lib/pkgconfig文件夹下面的文件叫做哦opencv.pc。
--cflags指明编译过程需要的头文件去哪里找, --libs指明连接过程中so文件去哪里找。
参考 http://www.samontab.com/web/2012/06/installing-opencv-2-4-1-ubuntu-12-04-lts/