树莓派2+OpenCV环境搭建

一,环境搭建

1、安装所需的安装工具和包:

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

build-essential 和 pkg-config可能都已经安装。以防万一,我们还是将它们键入apt-get命令中。

2、安装必要的图像I/O包,这样才可以读入JPEG,PNG,TIFF等这些格式的图像。

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

3、安装GTK开发库,这个库用来构建GUI。同时OpenCV中的highgui库也需要它来在屏幕上显示图像。

# sudo apt-get install libgtk2.0-dev

4、安装必要的视频I/O包,OpenCV需要它们来读入视频文件。

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

5、安装OpenCV优化操作时所需库。

# sudo apt-get install libatlas-base-dev gfortran

6、下载和解压OpenCV(如果已经下载好了,通过U盘传到树莓派,注意U盘是挂载在/media目录下)

# wget -O opencv-2.4.9.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download
# unzip opencv-2.4.9.zip
# cd opencv-2.4.9

7、安装open

# sudo mkdir build
# cd build
# sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON ..

8、编译OpenCV

# sudo make
# sudo make install

9、更新搜索动态链接库

#sudo ldconfig

二、测试

通过代码载入一张图片,通过opencv把彩色图片转换为黑白图片,并把原图和转换后的图片输出到屏幕中。

test.cpp

#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main (int argc, char **argv)
{
    Mat image, image_gray;

    if (argc != 2 || !image.data) 
    {
        cout << "No image data\n";
        return -1;
    }

    cvtColor(image, image_gray, CV_RGB2GRAY);

    namedWindow("image", CV_WINDOW_AUTOSIZE);
    namedWindow("image gray", CV_WINDOW_AUTOSIZE);

    imshow("image", image);
    imshow("image gray", image_gray);

    waitKey(0);
    return 0;
}

makefile

INCLUDE = $(shell pkg-config --cflags opencv)
LIBS = $(shell pkg-config --libs opencv)
SOURCES = test.cpp
# 目标文件
OBJECTS = $(SOURCES:.cpp=.o)
# 可执行文件
TARGET = test
$(TARGET):$(OBJECTS)
    g++ -o $(TARGET) $(OBJECTS) -I $(INCLUDE) $(LIBS)
$(OBJECTS):$(SOURCES)
    g++ -c $(SOURCES)
clean:
    rm $(OBJECTS) $(TARGET)
# 编译规则 $@代表目标文件 $< 代表第一个依赖文件
%.o:%.cpp
    g++ -I $(INCLUDE) -o $@ -c $<

编译并执行,载入一张名为lena.jpg图片,图片和可执行文件test应在同一个目录中,如下图所示

#sudo make
#sudo ./test lena.jpg

这里写图片描述

运行过程中还出现了两个问题

问题一:

这里写图片描述

这是由于我在编写这个文件的时候,9行前面用的是4个空格符,而不是tab,所以造成了操作符丢失的错误。只需把缩进的空格delete掉,然后按tab键用tab代替4个空格,问题就可能解决。

问题二:

这里写图片描述

这里写图片描述

这是因为Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上. 如果需要别的用户的图形显示在当前屏幕上, 则应以当前登陆的用户, 也就是切换身份前的用户执行如下命令。

#xhost +

通过执行这条命令,就授予了其它用户访问当前屏幕的权限,于是就可以以另外的用户运行需要运行的程序了,最简单的办法就是用root权限运行。

运行结果

这里写图片描述

参考资料:
http://blog.csdn.net/zx3517288/article/details/47335223
https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=80601
http://docs.opencv.org/2.4/doc/tutorials/introduction/linux_install/linux_install.html
http://blog.csdn.net/xukai871105/article/details/40988101
http://tieba.baidu.com/p/3958907653

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值