Zynq7000开发系列-5(OpenCV开发环境搭建:Ubuntu、Zynq)

操作系统:Ubuntu14.04.5 LTS 64bit

OpenCV:OpenCV 3.1.0、opencv_contrib

gcc:gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)

arm-xilinx-linux-gnueabi-gcc:gcc version 4.9.2 (Sourcery CodeBench Lite 2015.05-17)


一、Ubuntu下OpenCV3.1.0编译(包含opencv_contrib模块)

1、依赖包安装

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

 

2、下载源码

OpenCV:opencv-3.1.0.zip

官网链接:https://opencv.org/releases.html

contrib模块:opencv_contrib-3.1.0.zip

Github链接:https://github.com/opencv/opencv_contrib/releases

 

3、安装命令

unzip opencv_contrib-3.1.0.zip  # 解压
unzip opencv-3.1.0.zip          # 解压
cd opencv-3.1.0
mkdir build                     # 编译文件夹
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/opt/opencv310 -D OPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib/modules/> ..
# OPENCV_EXTRA_MODULES_PATH用实际的地址代替,切勿漏掉最后的两个点“..”,表示上层文件夹的意思 make
-j4 # -j4表示使用4个线程编译 make install # 安装到指定文件夹/opt/opencv310

 

4、安装后配置

Note:由于没有安装在/usr或/usr/local下,需要做一些额外的配置

##让opencv的相关链接库被系统共享
sudo gedit /etc/ld.so.conf.d/opencv310.conf
添加:/opt/opencv310/lib,保存
sudo ldconfig
##为程序指定openvc的头文件位置
sudo gedit /etc/bash.bashrc
在文件后添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/opencv310/lib/pkgconfig
export PKG_CONFIG_PATH
保存退出,重新开启终端来使配置生效

执行一下命令检查OpenCV相关信息是否正确输出:

pkg-config opencv --libs       # 输出OpenCV的库文件信息
pkg-config opencv --cflags    # 输出OpenCV的头文件信息

 

6、测试

OpenCV 3.1.0 dnn模块测试,参考官方教程链接:https://docs.opencv.org/master/d5/de7/tutorial_dnn_googlenet.html

 

二、OpenCV3.1.0交叉编译(包含opencv_contrib模块)[ for Zynq ]

1、依赖包安装

sudo apt-get install cmake-curses-gui

 

2、下载源码

见上述第一点第2小点。

 

3、重新解压缩源码包得到文件夹/opencv-3.1.0,并重命名为/opencv-3.1.0_zynq

 

4、设置编译环境(交叉编译链):在/opencv-3.1.0_zynq下新建文件toolchain.cmake,内容如下:

set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_C_COMPILER arm-xilinx-linux-gnueabi-gcc)
set(CMAKE_CXX_COMPILER arm-xilinx-linux-gnueabi-g++)

 

5、安装命令

mkdir build       # 编译文件夹
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_TOOLCHAIN_FILE=../toolchain.cmake -D CMAKE_INSTALL_PREFIX=/opt/opencv310_zynq -D OPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib/modules/> ..# CMAKE_TOOLCHAIN_FILE 指定配置编译环境的文件,OPENCV_EXTRA_MODULES_PATH 用实际的地址代替,切勿漏掉最后的两个点“..”,表示上层文件夹的意思
ccmake ..

    打开配置界面后,修改如下:
    把所有以WITH开头的选项全部选为OFF(除了WITH_V4L选为ON外)(这些选项需第三方库支持,若用到则选为ON)
    按c键配置,然后按g键生成并退出

make -j4          # -j4表示使用4个线程编译
make install      # 安装到指定文件夹/opt/opencv310_zynq

 

至此,OpenCV开发环境搭建完毕。

 

参考文章链接:

ubuntu 14.04 64位 安装Opencv3.1.0 (包含opencv_contrib模块) - Fienly - 博客园
https://www.cnblogs.com/asmer-stone/p/5089764.html

 

转载于:https://www.cnblogs.com/wmxfd/p/zynq7000_development_5_opencv_development_environment_establishment_fot_ubuntu_and_zynq.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281871.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

# 20172307 2018-2019-1 《程序设计与数据结构》第5周学习总结

20172307 2018-2019-1 《程序设计与数据结构》第5周学习总结 教材学习内容总结 查找 1.线性查找&#xff1a;从该列表头开始依次比较每一个值&#xff0c;直至找到该目标元素。2.二分查找法&#xff1a;二分查找是从排序列表的中间开始查找&#xff0c;如果没有在那个中间元素则…

java 生成jni_Javah生成JNI头文件

在eclipse中建一项目&#xff0c;建一class1 packageesmart.colfile.parse;2 3 publicclassTestHello {4 static{5 System.loadLibrary("TestHello");6 }7 8 publicstaticnativevoidhello(String msg);9 10 publicstaticvoidmain(String[] args) {11 12 hello("…

IBM 的大型机 z Systems 引入 Go 语言

据 cbronline 报道&#xff0c;IBM 正把 Go 语言运用到旗下的大型机上。 IBM 将开源的 Go 语言引入到 z Systems 大型机后&#xff0c;可以给用户多一个的选择&#xff0c;即在大型机上使用 Linux 或基于 Go 的应用&#xff0c;同时也使大型机更加灵活。Go 语言在高并发的网络应…

WPF-10 逻辑树和可视化树

我们在WPF-03 资源之Resources结尾中介绍逻辑树和可视化树的基本概念&#xff0c;我们这节来介绍这两棵树逻辑树&#xff08;Logical Tree&#xff09;逻辑树是由每个控件的节点组成&#xff0c;本质上就是XAML文件中的UI元素&#xff0c;我们可以通过LogicalTreeHelper类提供的…

洛谷P4364 [九省联考2018]IIIDX(线段树)

传送门 题解看得……很……迷&#xff1f; 因为取完一个数后&#xff0c;它的子树中只能取权值小于等于它的数。我们先把权值从大到小排序&#xff0c;然后记$a_i$为他左边&#xff08;包括自己&#xff09;所有取完他还能取的数的个数。那么当取完一个点$x$的数之后&#xff0…

国产车崛起粉碎德日工业神话

由于二战战败&#xff0c;德国一大批顶尖人才被美苏瓜分&#xff0c;战败国地位和人才断层导致德国工业基本是第二次工业革命的产物&#xff0c;专精于机械、化工等传统行业&#xff0c;并有巴斯夫、拜尔、大众、戴姆勒、宝马等一批世界级企业。不过&#xff0c;德国世界级的IT…

java hibernate 分页查询_4 Hibernate HQL查询,分页查询

/*** HQL查询的一个例子*/public static void hql(){Session s null;try{s HibernateUtil.getSeesion();//final String hql "from User as u where u.name?";final String hql "from User as u where u.name:name";final Query query s.createQuery…

Linux -sed

sed &#xff0c;查找sed -n /root/p passwd #列出passwd中有root的行 sed -nr /ot/p passwd #sed -r grep -E 都是进行脱意 sed -nr /0{2}/p passwd #匹配两次o的 sed -nr /root|bus/p passwd #匹配root 或者bus的 sed -n 2p passwd # 查找指定的行sed -n 2,5p passwd # 查找…

h5 端图片上传-模拟多张上传

1、由于后端的限制&#xff0c;上传图片到服务器只能的一张一张传2、显示图片预览是本地的图片3、根据服务器返回的结果拿到相应的路径保存到提交评论的接口中4、删除的时候&#xff0c;需要删除对应的路径&#xff0c;不要把删除的提交到评论的接口中 A、comment-detail.js va…

node安装问题

1.最好安装到默认路径&#xff0c;手贱安到了D盘&#xff0c;升级npm各种出错。 明明升级成功&#xff0c;查看版本时&#xff0c;确显示依然是老的版本。 原因&#xff1a;升级的是C盘的node_modules中的npm&#xff0c;执行时确是D盘node自带的npm&#xff0c;不知道为啥。。…

全新升级的AOP框架Dora.Interception[汇总,共6篇]

多年之前利用IL Emit写了一个名为Dora.Interception的AOP框架。前几天利用Roslyn的Source Generator对自己为公司写的一个GraphQL框架进行改造&#xff0c;性能得到显著的提高&#xff0c;觉得类似的机制同样可以用在AOP框架上&#xff0c;实验证明这样的实现方式不仅仅极大地改…

java string转decimal_java中string转bigdecimal的例子

小编知道在java中数据类型非常 的严格了&#xff0c;我们如果一个地方不小心就会导致应用出问题了&#xff0c;今天 小编就在string 转BigDecimal上碰到了一些问题&#xff0c;下面整理了几个例子大家一起来看看。例子1,string 转BigDecimalpublic class Test{public static vo…

通过url来设置log4j的记录级别

2019独角兽企业重金招聘Python工程师标准>>> 直接看代码。 import org.apache.log4j.AppenderSkeleton; import org.apache.log4j.Level; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotati…

通过用户模型,对数据库进行增删改查操作

增加&#xff1a;user db.session.add(user)db.session.commit() #增加 user User(username JACKSON,password0328 ) db.session.add(user) db.session.commit() 查询&#xff1a;User.query.filter(User.username mis1114).first() #查询 userUser.query.filter(User.usern…

Android OpenGL ES(七)----理解纹理与纹理过滤

1.理解纹理 OpenGL中的纹理能够用来表示图像。照片&#xff0c;甚至由一个数学算法生成的分形数据。每一个二维的纹理都由很多小的纹理元素组成。它们是小块的数据&#xff0c;类似于我们前面讨论过的片段和像素。要使用纹理&#xff0c;最经常使用的方式是直接从一个图像文件载…

WPF 基础控件之托盘

WPF 基础控件之托盘控件名&#xff1a;NotifyIcon作者&#xff1a; WPFDevelopersOrg - 吴锋|驚鏵原文链接&#xff1a; https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用大于等于.NET40。Visual Studio 2022。项目使用 MIT 开源许可协议。新建NotifyIcon自定义…

java 匿名 异常_JAVA类(内部类、匿名内部类、异常、自定义异常)

内部类package AA;public class类 {int de123;StringBuffer deenewStringBuffer();public class成员内部类{public voidff() {System.out.println("这是成员内部类方法");}}/*1.可以访问外部类所有的成员&#xff0c;包括被声明为私有(private)的&#xff1b;2.可以使…

ASP.NET 多环境下配置文件web.config的灵活配置---转

注意&#xff1a;本功能在.Net Core中已经不可用&#xff0c;暂时需手动修改web.config中的信息&#xff0c;或者将其设置在appsettings.XXX.json中&#xff0c;然后再使用web.config中的环境变量来制定使用的具体appsettings文件。 转自&#xff1a;https://www.cnblogs.com/h…

英语之各类人群

工作狂&#xff1a;workaholic 月光族&#xff1a;moonlight group 电灯泡&#xff1a;third wheel 菜鸟&#xff1a;newbie 夜猫子&#xff1a;night owl 路痴&#xff1a;somebody has no sense of derection 宅男宅女&#xff1a;homebody 时尚的潮人&#xff1a;trend sett…

Wget CVE-2014-4877:FTP 符号链接任意文件系统访问

Wget 爆出 CVE-2014-4877 漏洞&#xff1a;FTP 符号链接任意文件系统访问。 Package: wgetVersion: 1.15-1Severity: important Upstream fix&#xff1a; http://git.savannah.gnu.org/cgit/wget.git/commit/?id18b0979357ed7dc4e11d4f2b1d7e0f5932d82aa7 References&#xf…