基于imx6ull开发板 移植opencv4.7.0

2024-06-24 01:20

本文主要是介绍基于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/,如下图所示:

在这里插入图片描述

这篇关于基于imx6ull开发板 移植opencv4.7.0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1088800

相关文章

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

开发板NFS挂载文件目录

文章目录 序NFS1. 安装 NFS 服务器和客户端在服务器上(NFS 服务器端)在客户端上(NFS 客户端) 2. 配置 NFS 服务器创建共享目录编辑 `/etc/exports` 文件启动 NFS 服务 3. 在客户端挂载 NFS 共享创建挂载点挂载 NFS 共享验证挂载 4. 设置开机自动挂载5. 解决权限问题 序 本节主要实现虚拟机(服务器)与开发板(客户端)通过N

安卓开发板_联发科MTK开发评估套件串口调试

串口调试 如果正在进行lk(little kernel ) 或内核开发,USB 串口适配器( USB 转串口 TTL 适配器的简称)对于检查系统启动日志非常有用,特别是在没有图形桌面显示的情况下。 1.选购适配器 常用的许多 USB 转串口的适配器,按芯片来分,有以下几种: CH340PL2303CP2104FT232 一般来说,采用 CH340 芯片的适配器,性能比较稳定,价

RT-Thread(Nano版本)的快速移植(基于NUCLEO-F446RE)

目录 概述 1 RT-Thread 1.1 RT-Thread的版本  1.2 认识Nano版本 2 STM32F446U上移植RT-Thread  2.1 STM32Cube创建工程 2.2 移植RT-Thread 2.2.1 安装RT-Thread Packet  2.2.2 加载RT-Thread 2.2.3 匹配相关接口 2.2.3.1 初次编译代码  2.2.3.

基于IMX6ULL的Cortex-A中断原理讲解,以及编写其中断向量表

首先借助STM32我们需要了解中断系统是如何构成的         会有一个中断源,也就是能够向CPU发出中断请求的设备或事件。中断源不分硬件和软件,也就是产生中断信号,就会执行中断服务函数         但是CPU是如何知道中断源产生后就找到对应的中断服务函数呢,这个时候就要引入中断向量表,它的主要功能是描述中断对应的中断服务函数,每个中断源都有一个唯一的中断号(也称向量号),

libmad音频解码库-Linux交叉编译移植

下载并解压libmad-0.15.1b.tar.gz 下载链接:https://downloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz $tar -xvf libmad-0.15.1b.tar.gz$cd libmad-0.15.1b 1、先执行下面的命令:这条命令是为了适配高版本的gcc,因为高版本的gcc已经将-fforce-mem去除了:

arm linux lua移植

lua: lua home 1.下载lua源码 lua下载 lua-5.3.4.tar.gz 2.解压: tar xvf lua-5.3.4.tar.gz 3.修改makefile and luaconf.h $修改 lua-5.3.4/Makefile #INSTALL_TOP= /usr/local INSTALL_TOP= $(shell pwd)/out #修改安装目录(当前目录/o

正点原子阿尔法ARM开发板-IMX6ULL(二)——介绍情况以及汇编

文章目录 一、裸机开发(21个)二、嵌入式Linux驱动例程三、汇编3.1 处理器内部数据传输指令3.2 存储器访问指令3.3 压栈和出栈指令3.4 跳转指令3.5 算术运算指令3.6 逻辑运算指令 一、裸机开发(21个) 二、嵌入式Linux驱动例程 三、汇编 我们在进行嵌入式 Linux 开发的时候是绝对要掌握基本的 ARM 汇编,因为 Cortex-A 芯片一

s3c2440---PWM使用之蜂鸣器驱动移植

一、蜂鸣器驱动介绍 1.1.什么是蜂鸣器               蜂鸣器是一种简单的声响发生器,常用于电子产品中作为警示或提醒作用。其基本原理是通过交替改变直流电的电压方向来产生声音,一般使用交替电流产生声音会比较稳定。 1.2.蜂鸣器的类别 1.有源蜂鸣器 1)结构原理 有源蜂鸣器内部自带振荡源,只需接通电源即可发声。内部电路会自动产生一定频率的振荡信号,从而驱动蜂鸣器发声。

龙芯L2K0300开发板综合测试

CPU 查看cpu版本信息 cat /proc/cpuinfo 可以看到cpu是64位的LoongsonArch架构 stress压力测试结果 RAM 久久派板载512MB DDR4-2666内存,查看内存信息 cat /proc/meminfo 可以用memtester进行内存性能测试 memtester <size> <times> memtester测试结果