基于imx6ull开发板 移植opencv4.7.0

一、概述

本章节是针对opencv-4.7.0移植到Linux系统,运行在正点原子-I.MX6U ALPHA开发板
上,详细的移植流程如下。

二、环境要求

2.1 硬件环境

  • 正点原子-I.MX6U ALPHA开发板
  • 虚拟机:VMware

2.2 软件环境

  • Ubuntu系统要求:20.04
  • opencv版本: 4.7.0
  • opencv贡献软件版本:4.x
  • 交叉工具链版本:gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf

三、移植流程

imx6ull平台交叉编译器环境:gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf,交叉编译器环境路径是/tools/ToolsChain/nxp/imx6ull/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf,交叉编译器前缀是arm-linux-gnueabihf-。
opencv-4.7.0和opencv_contrib-4.x在同一级目录,如下图所示:
在这里插入图片描述

3.1 编写平台需要的文件

进入opencv-4.7.0目录下,执行mkdir build命令创建build目录,创建并编写toolchain-linux-imx6ull.cmake文件,如下图所示:

在这里插入图片描述
在这里插入图片描述
图片内容如下:

SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_PROCESSOR arm)

SET(TOOLCHAIN_DIR "/tools/ToolsChain/nxp/imx6ull/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf")
SET(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_DIR})
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

SET(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-gcc)
SET(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-g++)
SET(CMAKE_NM ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-gcc-nm)
SET(CMAKE_RANLIB ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-gcc-ranlib)
SET(CMAKE_AR ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-ar CACHE FILEPATH "Archiver")

保存并退出

3.2 编译并安装

在build目录下执行mkdir -p ../build_tmp/build_imx6ull目录,并进入build_imx6ull目录下,如下图所示:
在这里插入图片描述
这样创建的好处便于扩展
在build_imx6ull目录下执行内容如下:

cmake -DCMAKE_BUILD_TYPE=RELEASE  \
	-DCMAKE_INSTALL_PREFIX=/data/Workspace_Linux/software_lib/opencv-x.x.x/output/opencv-4.7.0/imx6ull \
	-DCMAKE_TOOLCHAIN_FILE=/data/Workspace_Linux/software_lib/opencv-x.x.x/opencv-4.7.0/build/toolchain-linux-imx6ull.cmake \
	-DBUILD_SHARED_LIBS=ON \
	-DCMAKE_CXX_FLAGS=-fPIC \
	-DCMAKE_C_FLAGS=-fPIC \
	-DCMAKE_EXE_LINKER_FLAGS=-lpthread -ldl \
	-DWITH_JPEG=ON \
	-DWITH_OPENCL=ON \
	-DWITH_PNG=ON \
	-DOPENCV_EXTRA_MODULES_PATH=/data/Workspace_Linux/software_lib/opencv-x.x.x/opencv_contrib-4.x/modules ../..

其中,

  • -DCMAKE_INSTALL_PREFIX:安装目录;
  • -DCMAKE_TOOLCHAIN_FILE:工具链配置目录;
  • -DOPENCV_EXTRA_MODULES_PATH:opencv4.7.0的贡献软件目录,与opencv4.7.0同级。

执行结果如下图所示:
执行
在这里插入图片描述
之后执行make -j8命令进行编译,如下图所示;

在这里插入图片描述

在这里插入图片描述
之后执行make install命令进行安装,如下图所示:

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

3.3 编译结果

安装的目录相对于build_imx6ull目录位置ls ../../../output/opencv-4.7.0/imx6ull/,如下图所示:

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

常用算法及参考算法 (1)累加 (2)累乘 (3)素数 (4)最大公约数 (5)最值问题 (6)迭代法

常用算法及参考算法 &#xff08;1&#xff09;累加 &#xff08;2&#xff09;累乘 &#xff08;3&#xff09;素数 &#xff08;4&#xff09;最大公约数 &#xff08;5&#xff09;最值问题 &#xff08;6&#xff09;迭代法 1. 累加 #include <stdio.h>int main() {…

物理层(一)

第2章 物理层 2.1 通信基础 2.1.1 基本概念 1、数据、信号与码元 通信的目的是传输信息&#xff0c;如文字、图像和视频等。数据是指传送信息的实体。信号则是数据的电气或电磁表现&#xff0c;是数据在传输过程中的存在形式。数据和信号都有模拟或数字之分:①模拟数据(或模…

Day15 —— 大语言模型简介

大语言模型简介 大语言模型基本概述什么是大语言模型主要应用领域大语言模型的关键技术大语言模型的应用场景 NLP什么是NLPNLP的主要研究方向word2vecword2vec介绍word2vec的两种模型 全连接神经网络神经网络结构神经网络的激活函数解决神经网络过拟合问题的方法前向传播与反向…

【数据结构与算法】详解循环队列:基于数组实现高效存储与访问

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《数据结构与算法》 期待您的关注 ​ 目录 一、引言 &#x1f343;队列的概念 &#x1f343;循环队列的概念 &#x1f343;为什…

python基础语法 003-1 数据类型列表

1 列表 1.1 列表的定义 关键字&#xff1a;list()标识&#xff1a;[] 用逗号隔开使用最频繁的数据类型&#xff0c;列表可以完成大多数集合类型的数据结构实现支持字符、数字、字符串、甚至可以包含列表&#xff0c;即嵌套打印列表类型&#xff1a;type()1个元素的列表表示&…

【Linux基础】文件基本属性

Linux文件基本属性是指文件或目录在Linux系统中具有的一系列特性和信息。这些属性提供了关于文件或目录的详细信息&#xff0c;包括其类型、权限、大小、创建和修改时间等。 文件属性 在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组…

springCloud组件专题(四) --- sentinel

前言 限流&#xff0c;熔断降级概念 限流&#xff1a;顾名思义&#xff0c;就是对一个资源&#xff08;服务或者接口都可以算资源&#xff09;的访问进行限制。简单来说就是限制单位时间内允许资源被访问的次数。常见的算法就是令牌桶算法。 降级&#xff1a;降级其实是一种资源…

常用主流sip协议软电话客户端软件有哪些?—— 筑梦之路

Ekiga 官网地址&#xff1a;Ekiga ~ Free Your Speech Ekiga&#xff0c;原名GnomeMeeting&#xff0c;支持Windows和Linux&#xff0c;是一个兼容SIP和H.323的视频会议程序&#xff0c;兼容VoIP&#xff0c;IP电话&#xff0c;通过Ekiga可以与使用任何SIP和H.323软硬件的远程…

C语言 | Leetcode C语言题解之第188题买卖股票的最佳时机IV

题目&#xff1a; 题解&#xff1a; int maxProfit(int k, int* prices, int pricesSize) {int n pricesSize;if (n 0) {return 0;}k fmin(k, n / 2);int buy[k 1], sell[k 1];memset(buy, 0, sizeof(buy));memset(sell, 0, sizeof(sell));buy[0] -prices[0];sell[0] 0…

周末设计高端企业_集团官网主题Discuz模板

风格名称: 周末设计_高端企业_集团官网 适用版本: Discuz! X3.0、X3.1、X3.2、X3.3、F1.0 风格编码: 使用语言包结构&#xff0c;适合全部编码 周末设计高端企业_集团官网主题Discuz模板

g++制作C++动态库的简洁例程

g制作C动态库的简洁例程 code review! 文章目录 g\制作C动态库的简洁例程1. 创建 C 动态库1.1 动态库源文件1.2 编译动态库 2. 使用动态库2.1 命令行编译链接然后运行2.2 使用 CMake 编译链接然后运行 3.附加笔记&#xff1a;关于运行时是否能找到libmylib.so的问题汇总3.1.g -…

TLS握手中的RTT

文章目录 TLS 1.2 握手过程中的 RTT 次数TLS 1.3 1-RTT 初次TLS1.3 0-RTT 握手过程总结 TLS 1.2 握手过程中的 RTT 次数 TLS 1.2 握手通常需要2 RTT 才能完成。具体步骤如下&#xff1a; 第一次 RTT&#xff1a; 客户端发送 ClientHello&#xff1a;客户端生成一个随机数&…

【离散数学】图的随机生成和欧拉(回)路的确定(c语言实现)

实验要求 变量定义 因为如果我们使用局部变量&#xff0c;每一个函数都会使用这些变量&#xff0c;会让函数的参数越变越多。所以我们定义全局变量&#xff0c;这样就不用在参数中调用了。 #define MAX 100 int arrMap[MAX][MAX] { 0 };//图的矩阵 int degree[MAX] { 0 };…

GEO数据挖掘-富集分析、TinyArray简化流程、多组样本分析more

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 富集分析一些理论知识具体代码 富集不到的补救措施更多资料---问题数据和常见错误分析Part4-复杂数据及其分析多分组数据分析流程 tinyarray简化版本分析流程多分组…

ROS机器人虚拟仿真挑战赛持续学习笔记-20240619

cartographer 需要全手工编译……比较麻烦。 如果使用新版ceres-solver&#xff0c;版本2.x&#xff0c;需要修改源码&#xff0c;部分“接口代码”有改动。 稳妥使用ceres-solver-1.13.0&#xff0c;且需要安装abseil-cpp。 验证是否成功&#xff0c;使用roscd或roslaunch…

C语言| 数组元素的删除

同数组元素的插入差不多。 数组元素的插入&#xff0c;是先移动要插入元素位置后面的所有元素&#xff0c;再插入新元素&#xff0c;长度1。 C语言| 数组的插入-CSDN博客 数组元素的删除&#xff0c;是先删除元素&#xff0c;再把后面的元素往前移动一位&#xff0c;而本程序…

三国之家网站的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;论坛管理&#xff0c;公告管理&#xff0c;三国视频管理&#xff0c;基础数据管理&#xff0c;三国图文管理 前台账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#…

2.树莓派4b+ubuntu18.04(ros版本melodic)+arduino mega自制两轮差速小车,实现建图导航功能

这篇文章介绍arduino使用和安装arduino_bridge 将arduino与树莓派连接 查看arduino的端口号&#xff0c;我们这里查看到的时ttyUSB0 ll /dev/ttyUSB*将当前用户添加进dialout组 sudo usermod -a -G dialout your_user_name然后重启树莓派&#xff0c;然后才能生效 然后如果你…

“Driver not loaded“问题解决方案

这两天又碰到了离谱的&#xff0c;愚蠢的&#xff0c;莫名其妙的&#xff0c;丧尽天良的错误。 之前已经解决过这个问题。这几天又碰上了&#xff0c;明明都已经把相应的dll放到了exe的同级目录&#xff0c;NND还是有问题&#xff01;&#xff01;&#xff01;卡了我一个晚上加…

Linux C/C++ socket函数

目录 socket函数 函数原型 头文件 功能 返回值 参数 错误码 socket函数 函数原型 int socket(int domain, int type, int protocol); 头文件 #include <sys/types.h> #include <sys/socket.h> 功能 创建一个用于通信的端点&#xff0c;并返回一个文件描述符…