树莓派上搭建opencv环境

树莓派上搭建opencv环境

本文记录搭建opencv的过程,为以后做一个参考,使用的是树莓派2(Raspberry Pi2),opencv版本为opencv-2.4.9。

1、准备:在树莓派上安装系统

我选择的是debian系统,镜像可以在官网下载
安装系统比较简单,我是使用Win32DiskImager工具将镜像文件烧写到SD卡(32G)中,然后将SD卡插入到树莓派中上电就可以了。

2、搭建opencv环境

1)源列表更新

在国内,如果使用的是国外的源是不能更新下载软件,而且有许多源使用起来很慢,让人难以忍受,这里给出我使用的源列表:

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ jessie main non-free contrib                                                  
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ jessie main non-free contrib

用上面的源列表替代/etc/apt/souces.list中的内容,然后再终端输入:

sudo apt-get update

2)更新升级已经安装的软件和Raspberry Pi固件

打开终端,输入:

    sudo apt-get upgrade
    sudo rpi-update

update和upgrade都是需要的,我在电脑上安装时没有加这两条指令,最后搭建环境时出现了错误,并且难以解决。

3)安装需要的工具包

sudo apt-get install build-essential cmake pkg-config

cmake是一个编译配置工具,可以通过编写CMakeLists.txt来控制生成相应Makefile,这种方式也是opencv程序推荐的编译程序的方式。
pkg-config是用来获取库的各种必要信息的,包括版本信息、编译和链接需要的参数等等,在编译时也可以用pkg-config来编译

4)安装不同格式图像的I/O包

sudo apt-get install libjpeg8-dev libtiff4-dev libjasper-dev libpng12-dev

5)安装GTK开发库

sudo apt-get install libgtk2.0-dev

这个库是用来构建GUI的,同时opencv中highgui库也需要用到它。但是这个在安装时最容易出现问题,我遇到的就是安装时提示找不到目标,这种时候可能是源列表有问题,或者是没有更新和升级已安装的软件。

6)安装必要的视频I/O包

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

7)安装opencv优化操作需要的库

sudo apt-get install libatlas-base-dev gfortran

8)下载并解压opencv库

在opencv官网下载opencv源码,我使用的是opencv-2.4.9。解压:

unzip opencv-2.4.9.zip
cd opencv-2.4.9

9)编译安装opencv

注意:这一步骤中编译耗时较长,要两个小时左右,请合理安排时间。

cmake .
make
sudo make install
sudo ldconfig

完成之后opencv应该已经安装完成,头文件目录为/usr/local/include/opencv,库文件目录为/usr/local/lib。到此opencv安装完成,接下来是测试环境搭建是否成功。

3、测试opencv环境是否搭建成功

1)编写代码

用显示图像的例子来测试,编写一个test.cpp:

#include
#include
#include

using namespace cv;
int main()
{
    Mat img = imread("lena.jpg");
    namedWindow("test");
    imshow("test",img);
    waitKey(0);
    return 0;
}

imread()函数读取一张图片,参数是图片的路径。

2)编译执行

这里用pkg-config的方式来编译opencv程序

g++ `pkg-config --cflags opencv` -o test test.cpp `pkg-config --libs opencv`  
./test

参考:
http://www.jb51.net/article/63103.htm

你可能感兴趣的:(opencv)