Ubuntu14.04 OpenCV编译安装与测试

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Jacky_Ponder/article/details/53443609

1简介

OpenCV,英文全称Open Source Computer Vision Library。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

官方主页:http://opencv.org/

2安装包

下载链接:http://opencv.org/downloads.html

安装包:opencv-2.4.11.zip

请不要下载opencv2.3.1, 会报ffmpeg的错误。另外, 最新版的opencv3 和opencv2 架构不同。 如果大家用opencv2用的顺手, 先不要升级opencv3了。

3安装

安装编译opencv的依赖包

sudo apt-get install libgtk2.0-dev pkg-config

无法显示摄像头采集到的视频,可能是因为没有安装libgtk2.0-dev和pkg-config

opencv中与图像显示相关的函数是基于libgtk2.0-dev,pkg-config用于组织编译后的opencv头文件与库文件等信息。

配置opencv,在这里使用cmake-gui进行配置,使用cmake直接配置会报错,后面会介绍。

OpenCV 2.2以后版本需要使用Cmake生成makefile文件,因此需要先安装cmake。

在终端输入

$cmake-gui

点击"configure",选择"Unix Makefiles","Use defaultnative compilers"。因为这里只是编译普通到PC版OpenCV。出现下面的界面,更改设置,把WITH-CUDA和BUILD_opencv_gpu选项去掉打钩,然后依次点Configure和Generate按钮生成Configure文件。(如果设置好之后 generate是灰色的 在点一次configure)

再点击"Generate",即生成Makefile。


进入"/root/jiangyf/opencv/opencv-2.4.13/build"目录,输入

$make

$ sudo  make install

到此,OpenCV编译完成。

4环境变量

安装成功后还需要设置opencv的环境变量

打开文件

sudo gedit /etc/profile ##个人比较喜欢把环境变量放在/etc/profile里面,'~/.bashrc'一样

在文件最后添加

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

执行下列命令, 使环境变量立即生效

source /etc/profile

5lib库路径

打开文件

sudo gedit /etc/ld.so.conf.d/opencv.conf

一般是新建文件,opencv的库一般安装在’/usr/local/lib’文件夹下,在文件内添加

/usr/local/lib 

执行下列命令使之立刻生效

sudo ldconfig

经过上面的流程,这样就可以在eclipse里或者qtcreator里用opencv了。 不过要配置号相应的路径和lib文件。

6示例代码

对opencv的sample进行编译并运行

cd /root/jiangyf/opencv/opencv-2.4.13/samples/c

./build_all.sh

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


7命令行编译与执行代码

#include<iostream>
#include"opencv2/opencv.hpp"
 
usingnamespace std;
usingnamespace cv;
 
int main()
{
    // Capturing multiple AVT cameras can bedone by simply initiating
    // two VideoCaptures after eachother.
    VideoCapture camera1(0);
    Mat frame1;
 
    for(;;){
        camera1 >> frame1;
 
        imshow("camera 1 frame",frame1); 
 
        int key = waitKey(10);
        if(key == 27){
            break;
        }
    }
 
    return 0;
}

在终端输入

//直接编译链接
gcc `pkg-config --cflags opencv` -o camera camera.c `pkg-config --libs opencv`
或gcc camera.c -o camera `pkg-config --cflags --libs opencv`
//先编译再链接:
gcc `pkg-config --cflags opencv` -c camera.c
gcc `pkg-config --libs opencv` -o camera camera.o
运行:
./camera

猜你喜欢

转载自blog.csdn.net/Jacky_Ponder/article/details/53443609