树莓派学习笔记—— 源代码方式安装opencv

0.前言

本文介绍如何在树莓派中通过编译源代码的方式安装opencv,并通过一个简单的例子说明如何使用opencv。

更多内容请参考——【树莓派学习笔记——索引博文

1.下载若干依赖项

    在开始安装之前,最好更新树莓派软件源。如果更新时间太长,请参考博文修改软件源网络地址——【树莓派学习笔记——修改树莓派软件源

sudo apt-get update

请依次安装以下依赖项,这些必须安装的依赖项来自于opencv官网的说明,在多数debian系统中都可以采用这种方式进行安装。其实在树莓派中build-essential已经默认安装,但是cmake等其他内容仍需要手动安装。

sudo apt-get install build-essential

sudo apt-get install cmake

sudo apt-get install libgtk2.0-dev

sudo apt-get install pkg-config

sudo apt-get install python-dev python-numpy

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev

2.获得源代码

    在树莓派用户目录中建立opencv文件夹

mkdir opencv

通过sourceforge网站获取opencv源代码,本文选择2.4.9版本。下载过程可能比较缓慢,请耐心等待。

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

解压源代码,获得一个名为opencv-2.4.9的文件夹

unzip opencv-2.4.9.zip

3.编译源代码

进入opencv源代码目录,在该目录中新建一个名为release的文件夹。

cd ~/opencv/opencv-2.4.9

mkdir release

cd release

使用cmake工具在该文件夹中生成makefile文件,指定opencv的安装目录为/usr/local,opencv的源代码位于上一层目录。

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

    编译源代码并安装(编译源代码的时间非常的长,make之后我便睡去,第二天早上才执行install)

make

sudo make install

更新搜索动态链接库

sudo ldconfig

4.示例

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

#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main (int argc, char **argv)
{
    Mat image, image_gray;
    image = imread(argv[1], CV_LOAD_IMAGE_COLOR );
    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)
# 编译规则 [email protected]代表目标文件 $< 代表第一个依赖文件
%.o:%.cpp
    g++ -I $(INCLUDE) -o [email protected] -c $<

【简要说明】

通过pkg-config --cflags opencv 获得opencv相关头文件路径,通过pkg-config --libs opencv获得opencv扩展库

更多makefile知识请查看——【Linux学习笔记——例说makefile 索引博文

【编译并执行】

make

./test raspberry.jpg

示例中载入一张名为raspberry.jpg图片。在该示例中,图片和可执行文件test应在同一个目录中。运行结果如下图所示,左侧为原始图片,右侧为转换后的图片。选择的图片色彩不够丰富,彩色图片和黑白图片的对比不够强烈,但也可证明opencv在树莓派中运行正常。

图1 运行结果

5.总结

树莓派安装opencv并不困难,陷阱不多但是耗时较长,需要保持足够的耐心。

参考资料

Installation in Linux

Installation of OpenCV Raspberry pi

时间: 2024-10-27 12:39:07

树莓派学习笔记—— 源代码方式安装opencv的相关文章

树莓派学习笔记——apt方式安装opencv

0.前言 本文介绍如何在树莓派中通过apt方式安装opencv,并通过一个简单的例子说明如何使用opencv.相比于源代码方式安装opencv,通过apt方式安装过程步骤简单些,消耗的时间也少一些.通过apt方式安装没有自动生成opencv.pc文件,所以在编写makefile文件时不能直接使用pkg-config工具,而需要逐个指定opencv_core.opencv_imgproc等动态链接库. [相关博文] [树莓派学习笔记-- 源代码方式安装opencv] 更多内容请参考--[树莓派学习

ubuntu 14.04 下利用apt-get方式安装opencv

转载,请注明出处:http://blog.csdn.net/tina_ttl 目录(?)[+] 标签(空格分隔): Linux学习 OpenCV ubuntu 1404 下利用apt-get方式安装OpenCV 前言 安装方法 opencv被安装在了哪里 1 opencv的安装源文件 2 opencv相关的头文件的安装位置 3 opencv的相关动态链接库的安装位置 4 linux下的opencv和windows下的opencv文件 测试代码 1 源码 2 make 3 测试程序 1.前言 相比

树莓派学习笔记—— 源码方式安装opencv

0.前言 ? ? 本文介绍怎样在树莓派中通过编译源码的方式安装opencv,并通过一个简单的样例说明怎样使用opencv. ? ? 很多其它内容请參考--[树莓派学习笔记--索引博文] 1.下载若干依赖项 ? ? 在開始安装之前.最好更新树莓派软件源. 假设更新时间太长,请參考博文改动软件源网络地址--[树莓派学习笔记--改动树莓派软件源] sudo apt-get update ? ? 请依次安装下面依赖项,这些必须安装的依赖项来自于opencv官网的说明,在多数debian系统中都能够採用这

树莓派学习笔记 1 -- 硬件的需求以及raspbian系统的安装

树莓派(Raspberry Pi) --  基于Linux系统的大小只有信用卡大小的卡片式机器.  按照发明者的想法,他是想降低学习程序开发的成本而设计制作的这款产品.你可以理解为一个简陋版的电脑.树莓派这是一个卡片,你需要买各种外设,然后自己DIY任何你想的,你可以的作品. Note:我使用的是最新的B+板. 一:硬件需求 话不多说,我们先来看看最基本的硬件需求. 这需要上面这几个才能使用一个完整的树莓派.树莓派对外设的要求是比较严的,很多外设不一定能支持,这个可以在买的时候询问商家. 1,无

树莓派学习笔记——交叉编译练习之SQLite3安装

0.前言 本博文可能并没有太多使用价值.不过为了练习而练习.在树莓派上使用SQLite有非常多的方法,安装的方法也有非常多. [1]假设使用Python,那么不必安装SQLite由于Python已经自带SQLite. [2]能够使用apt-get安装.仅仅是SQLite的版本稍低些. [3]能够使用源码安装,在树莓派上直接编译,尽管树莓派的运算速度不如PC机.可是稍等几分钟也能编译安装完毕. [4]假设你想练习一下交叉编译,请阅读下面内容吧. [本文目的] [1]怎样交叉编译源码包 [2]交叉编

树莓派学习笔记——使用文件IO操作GPIO SysFs方式

0 前言 本文描述如果通过文件IO sysfs方式控制树莓派 GPIO端口.通过sysfs方式控制GPIO,先访问/sys/class/gpio目录,向export文件写入GPIO编号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction和value等,direction控制GPIO方向,而value可控制GPIO输出或获得GPIO输入. Linux学习可从应用出发,先不纠结Linux驱动编写,先把Linux给玩起来. [相同与不同] 本文和[EasyARM

树莓派学习笔记——USB wifi配置指南

0 前言 树莓派既可以使用有线网络又可以无线网络,如果使用有线网络不方便的话可以借助USB wifi无线网卡让树莓派也插上无线"翅膀".但是和使用有线网络即插即用的方式不同,USB wifi网卡需要进行一些配置.通过一天的配置实验,本文总结了树莓派wifi配置的两种方法--[1]使用wpa_gui工具方法和[2]修改配置文件方法. [1]使用wpa_gui工具方法 wpa_gui是一种linux平台常用的wifi配置工具,wpa_gui具有图形界面操作简单.由于,树莓派B板只有两个US

树莓派学习笔记——Wifi AP热点模式 使用RT5370

0.前言 本文详细说明为树莓派增加Wifi AP热点功能的具体步骤.配置完成之后,树莓派将增加一个Wifi热点功能,使用笔记本或手机便可连接树莓派,树莓派具有了AP热点功能,可更一步扩展树莓派相关的WEB功能,通过连接树莓派提供的热点,登录树莓派提供的WEB服务,便可获得树莓派所监控的相关信息. 配置的步骤较多,请保持耐心. [配置说明] 1.树莓派热点名称(SSID)为Raspberry_AP,热点密码为12345678,加密方式为WPA2. 2.树莓派无线网口的IP地址为192.168.0.

CoAP学习笔记——nodeJS node-coap安装和使用(Linux平台)

 0 前言 本文说明如果安装和使用node-coap.CoAP是专门为物联网系统开发的面向网络的应用层协议栈,CoAP建立在UDP协议之上尽可能减少网络开销,又具有HTTP Restful类型的特性.node-coap使用nodejs实现了coap的客户端和服务器端. [测试环境]--ubuntu/Linux [相关博文] [CoAP协议学习--CoAP基础] [CoAP学习笔记--CoAP资源发现] [CoAP学习笔记--服务器端繁忙时的处理请求流程] [树莓派学习笔记--webiopi安装与