红联Linux门户
Linux帮助

Ubuntu 12.04安装OpenCV2.4.1并编译测试

发布时间:2014-06-01 09:40:58来源:红联作者:velcbo
在Ubuntu上编写OpenCV应用程序,确实有其不少优点,虽然起初配置环境稍微麻烦一点。下面,我就OpenCV2.4.1在Ubuntu 12.04 LTS 上环境配置整理如下。

一,对于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

cd ~/OpenCV-2.4.1/samples/c
chmod +x build_all.sh
./build_all.sh

./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg

./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 程序。

下面,给出一个例子。直接上代码[code]#include
#include
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;
}[/code]稍作解释,pkg-config命令需要跟一个.pc文件。opencv是/usr/lib/pkgconfig文件夹下面的文件叫做哦opencv.pc。

--cflags指明编译过程需要的头文件去哪里找, --libs指明连接过程中so文件去哪里找。

来源:Linux社区
文章评论

共有 0 条评论