0.前言

    本文介绍怎样在树莓派中通过apt方式安装opencv。并通过一个简单的样例说明怎样使用opencv。

相比于源码方式安装opencv,通过apt方式安装过程步骤简单些,消耗的时间也少一些。通过apt方式安装没有自己主动生成opencv.pc文件,所以在编写makefile文件时不能直接使用pkg-config工具,而须要逐个指定opencv_core、opencv_imgproc等动态链接库。

    【相关博文】
    很多其它内容请參考——【树莓派学习笔记——索引博文

1.安装opencv

    開始之前进行必要的更新工作。

sudo apt-get update

    安装opencv。

sudo apt-get install libcv-dev

    安装过程比較缓慢,请耐心等待。
    安装完毕之后,opencv相关的头文件被安装到/usr/lib文件夹中,该文件夹是linux默认头文件查找路径。

opencv的相关动态链接库被安装到/usr/lib文件夹中。

这些动态链接库包含:

【opencv_calib3d】——相机校准和三维重建
【opencv_core】——核心模块。画图和其它辅助功能
【opencv_features2d】——二维特征检測
【opencv_flann】——高速最邻近搜索
【opencv_highgui】——GUI用户界面
【opencv_imgproc】——图像处理
【opencv_legacy】——废弃部分
【opencv_ml】——机器学习模块
【opencv_objdetect】——目标检測模块
【opencv_ocl】——运用OpenCL加速的计算机视觉组件模块
【opencv_video】——视频分析组件
    

2.简单演示样例

【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】

CC = g++
# 可运行文件
TARGET = test
# C文件
SRCS = test.cpp
# 目标文件
OBJS = $(SRCS:.cpp=.o)
# 库文件
DLIBS = -lopencv_core -lopencv_imgproc -lopencv_highgui
# 链接为可运行文件
$(TARGET):$(OBJS)
$(CC) -o $@ $^ $(DLIBS)
clean:
rm -rf $(TARGET) $(OBJS)
# 编译规则 $@代表目标文件 $< 代表第一个依赖文件
%.o:%.cpp
$(CC) -o $@ -c $<

【简单说明】

DLIBS = -lopencv_core -lopencv_imgproc -lopencv_highgui
演示样例中使用了opencv中的核心部分、图像处理部分和GUI部分,所以依次添加opencv_core、opencv_imgproc、opencv_highgui动态链接库。该部分和和【树莓派学习笔记——源码方式安装opencv】中的演示样例稍有不同。前文中的makefile使用LIBS = $(shell pkg-config --libs opencv)引入全部的opencv动态链接库。此处手动指定相关库按需链接。

【编译】

make
【运行】
./test raspberry.jpg
可运行文件test和raspberry.jpg应在同一个文件夹中。

运行结果例如以下图所看到的,说明opencv得以正常运行。

图1 运行结果
3.总结

通过源码方式安装opencv更加方便,安装时间也更短。

树莓派学习笔记——apt方式安装opencv的更多相关文章

  1. 树莓派通过apt方式安装opencv库

    1.安装opencv     开始之前进行必要的更新工作. sudo apt-get update     安装opencv. sudo apt-get install libcv-dev     安 ...

  2. Opencv学习笔记1:安装opencv和VS2015并进行环境配置

    用了Opencv一段时间了,简单记录一下opencv在vs2015下的配置. 第一部分:OpenCV3.2.0的下载 OpenCV官方下载地址: https://opencv.org/releases ...

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

    转载,请注明出处:http://blog.csdn.net/tina_ttl 目录(?)[+] 标签(空格分隔): Linux学习 OpenCV ubuntu 1404 下利用apt-get方式安装O ...

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

    0.前言     本文介绍怎样在树莓派中通过编译源码的方式安装opencv,并通过一个简单的样例说明怎样使用opencv.     很多其它内容请參考--[树莓派学习笔记--索引博文] 1.下载若干依 ...

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

    0.前言     本博文可能并没有太多使用价值.不过为了练习而练习.在树莓派上使用SQLite有非常多的方法,安装的方法也有非常多.     [1]假设使用Python,那么不必安装SQLite由于P ...

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

    0 前言     本文描写叙述假设通过文件IO sysfs方式控制树莓派 GPIO端口.通过sysfs方式控制GPIO,先訪问/sys/class/gpio文件夹,向export文件写入GPIO编号, ...

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

    0 前言     树莓派既能够使用有线网络又能够无线网络,假设使用有线网络不方便的话能够借助USB wifi无线网卡让树莓派也插上无线"翅膀". 可是和使用有线网络即插即用的方式不 ...

  8. 【转】树莓派学习笔记——I2C Tools 学习笔记

    原文网址:http://blog.csdn.net/xukai871105/article/details/15029843 1.安装     I2C驱动载入和速率修改请查看博文[树莓派学习笔记——I ...

  9. 树莓派学习笔记(5):成功实现NAS家庭服务器(流媒体播放、文件共享及下载机)

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 一.家庭服务器实现的主要功能 1.流媒体播放服务:利用DLNA实现电视.手机.电脑播放其上面 ...

随机推荐

  1. 【线性基】【贪心】【独立环】bzoj2115 [Wc2011] Xor

    网上到处都是题解,自己画个图也很好理解.虽然环的个数很多,但是都可以通过独立环之间异或出来,不用管. 独立环求法:生成树之后,每次向图里添加非树边(u,v),则这个独立环的异或和为sum[u]^sum ...

  2. 【高斯消元】【异或方程组】【bitset】bzoj1923 [Sdoi2010]外星千足虫

    Xor方程组解的个数判定: ——莫涛<高斯消元解Xor方程组> 使用方程个数判定:消去第i个未知数时,都会记录距第i个方程最近的第i位系数不为0の方程是谁,这个的max就是使用方程个数. ...

  3. Postman Json测试接口

    当传递Json数据时: 1.必须添加http头:content-type:application/json,否则会报错(后台取不到相对应的值) 注意:如果服务端只支持UTF-8,但程序未对提交数据进行 ...

  4. Java高级架构师(一)第26节:测试并调整登录的业务功能

    主Index的处理Java: package com.sishuok.architecture1; import org.springframework.beans.factory.annotatio ...

  5. ListView(下)自定义适配器

    (一) 1.效果图 2.activity_main.xml <?xml version="1.0" encoding="utf-8"?> <L ...

  6. 在GIT中修改提交记录

    在SVN中,提交记录是无法修改的.比如说,当我们提交了某次修改后,发现该次提交中有错误时,只能将将补丁再次提交一遍.这样,就存在两次提交记录,没有保证提交的原子性. 在GIT中,由于提交是在本地进行的 ...

  7. 基于tiny4412的u-boot移植(二)

    作者信息 作者:彭东林 邮箱:pengdonglin137@163.com QQ: 405728433 平台介绍 开发环境:win7 64位 + VMware11 + Ubuntu14.04 64位 ...

  8. Debian、Ubuntu 源列表说明

    转载:http://forum.ubuntu.org.cn/viewtopic.php?t=366506 概貌: 源列表主文件为 /etc/apt/sources.list,另兼取 /etc/apt/ ...

  9. MR hadoop streaming job的学习 combiner

    代码已经拷贝到了公司电脑的: /Users/baidu/Documents/Data/Work/Code/Self/hadoop_mr_streaming_jobs 首先是主控脚本 main.sh 调 ...

  10. Golang 内存热力图

    https://cizixs.com/2017/09/11/profiling-golang-program/