0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ELF 1技术贴|如何移植OpenCV

ElfBoard 2024-01-09 13:55 次阅读

OpenCV是一个基于BSD许可(开源)发行的计算机视觉库,广泛应用于跨平台环境,包括Linux、Windows、Android及Mac OS操作系统。作为计算机视觉领域广受欢迎的标准工具包,OpenCV拥有了丰富的常用图像处理函数库,采用C/C++语言编写,可以运行在Linux、Windows、Mac等操作系统上流畅运行,并能够快速实现一系列图像处理和识别任务。

此外OpenCV为了增强其通用性和易用性,还提供了JavaPython、CUDA等的使用接口机器学习的基础算法调用,在图像处理与分析方面极大地简化了开发流程,使开发者能更专注于核心算法的设计和应用层面的工作。

接下来,以ELF 1开发板为例,本文将详细介绍如何成功移植OpenCV。

01下载OpenCV源码

下载地址:https://opencv.org/releases/选择你需要的版本,点击Source,小编这里以OpenCV- 3.4.1版本为例进行移植。

02将源码拷贝到Ubuntu环境中并进行解压

elf@ubuntu:~/work/a/wenz$ tar xvf opencv-3.4.1.tar.gz elf@ubuntu:~/work/a/wenz$ ls opencv-3.4.1 opencv-3.4.1.tar.gz

03进入OpenCV目录,创建文件夹build和install

elf@ubuntu:~/work/a/wenz$ cd opencv-3.4.1/ elf@ubuntu:~/work/a/wenz/opencv-3.4.1$ mkdir build elf@ubuntu:~/work/a/wenz/opencv-3.4.1$ mkdir install

04CMake-gui配置

首先打开CMake-gui,我们会用到CMake-gui对OpenCV进行配置,若没有请使用以下命令进行安装。

elf@ubuntu:~/work/a/wenz/opencv-3.4.1$ sudo apt-get install cmake cmake-qt-gui cmake-curses-gui elf@ubuntu:~/work/a/wenz/opencv-3.4.1$ cmake-gui

参考下图进行配置:

wKgaomWc3pSAMmP9AEuXm__hPLU867.pngwKgZomWc3pCABJKkAAFgoCtgB68675.png

C :/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc C++ :/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ Target Root:/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi/usr/lib

wKgZomWc3ruASg_eAAGsahPMdNY777.png


点击finish后,参考下图进行配置

wKgaomWc3teAQ_pUAAQmNM1jv_o145.png

CMAKE_CXX_FLAGS: -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi CMAKE_INSTALL_PREFIX: /home/elf/work/a/wenz/opencv-3.4.1/install CMAKE_EXE_LINKER_FLAGS: -lpthread -lrt -ldl


点击Configure 和Generate,参考下图进行配置

wKgZomWc3v2AZ8-LAAOs5akmydI916.png


配置成功之后,点击Configure 和Generate。此时已经正常生成Makefile。

wKgaomWc3wiAMfZUAAF9gh56sKQ786.png

正常生成makefile之后,使用make进行编译

elf@ubuntu:~/work/a/wenz/opencv-3.4.1$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi elf@ubuntu:~/work/a/wenz/opencv-3.4.1$ cd build elf@ubuntu:~/work/a/wenz/opencv-3.4.1/build$ make

报错一:

wKgaomWc3ymAVhTAAADcayLuOx0272.png

elf@ubuntu:~/work/a/wenz/opencv-3.4.1/build$ vi ../3rdparty/protobuf/src/google/protobuf/stubs/common.cc

加上这一行 #define HAVE_PTHREAD

保存、退出

wKgaomWc3z-AGOy6AAJ26h1GwPs454.png

报错二

wKgaomWc30eAZHs4AAD-p4lpvPA061.png

elf@ubuntu:~/work/a/wenz/opencv-3.4.1/build$ vi ../3rdparty/libpng/pngpriv.h

将:

# if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \

改为:

# if defined(PNG_ARM_NEON) && (defined(ARM_NEON) || defined(__ARM_NEON)) && \

wKgZomWc33KAfRlOAAI982sqvSc944.png

之后编译就没有报错了,编译完成后,执行make install将库和例程安装到目标文件下。

elf@ubuntu:~/work/a/wenz/opencv-3.4.1/build$ make install

将生成的文件通过U盘拷贝到开发板,至此OpenCV移植就结束啦,希望能对屏幕前的小伙伴提供帮助。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5056

    文章

    18954

    浏览量

    301649
  • 计算机
    +关注

    关注

    19

    文章

    7333

    浏览量

    87614
  • 开发板
    +关注

    关注

    25

    文章

    4881

    浏览量

    97001
  • OpenCV
    +关注

    关注

    29

    文章

    623

    浏览量

    41206
收藏 人收藏

    评论

    相关推荐

    ELF 1技术|如何在Ubuntu中编译OpenCV

    在之前发布的文章中探讨了交叉编译OpenCV并部署至嵌入式系统的方法。然而,在调试阶段,我们发现在Ubuntu环境下将OpenCV编译为X86架构可能更加方便和高效。通过在主机上编译并使用X86架构
    的头像 发表于 05-31 16:41 1112次阅读
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|如何在Ubuntu中编译<b class='flag-5'>OpenCV</b>库

    嵌入式学习-飞凌ElfBoard ELF 1板卡 - 如何在Ubuntu中编译OpenCV

    OpenCV的编译环境 (1)在自己的目录下新建一个opencv目录: elf@ubuntu:~/work$ mkdir opencv
    发表于 06-07 09:21

    I.MX6ULL-飞凌 ElfBoard ELF1板卡 - 如何在Ubuntu中编译OpenCV库(X86架构)

    OpenCV的编译环境 (1)在自己的目录下新建一个opencv目录: elf@ubuntu:~/work$ mkdir opencv
    发表于 06-07 09:32

    OpenCV移植方法

    本章节将介绍 OpenCV移植方法,及结合 Qt 例程去进一步学习 OpenCV 识别图像。本章节使用的资料已经放到了开发板网盘资料中,路径为:“11_Linux 系统开发进阶/86_章节_
    发表于 02-04 06:16

    OpenCV学习之路--5--OpenCV3.4.10的ARM版本移植到开发板 精选资料分享

    开发板:迅为IMX6Q移植QTE5.7编译好的ARM版本OpenCV3.4.10文件:OpenCV3.4.10 ARM版编译好的OpenCV依赖库文件:
    发表于 07-16 06:55

    ARM Linux下OpenCV移植和使用方法

    的应用领域非常广泛,包括图像拼接、图像降噪、产品质检、人机交互、人脸识别、动作识别、动作跟踪、无人驾驶等。本篇介绍ARM Linux下OpenCV移植和简单使用。2.环境介绍2.1.硬件1) NUC972开...
    发表于 11-03 07:01

    移植OpenCV-4.3.0的过程

    OpenCV-4.3.0是较新的OpenCV版本,最新的版本是OpenCV-4.4.0,由于GitHub太慢总是下载失败,不得已就移植OpenCV
    发表于 11-04 08:51

    opencv-4.3.0嵌入式Linux移植

    OpenCV-4.3.0是较新的OpenCV版本,最新的版本是OpenCV-4.4.0,由于GitHub太慢总是下载失败,不得已就移植OpenCV
    发表于 11-01 16:56 11次下载
    <b class='flag-5'>opencv</b>-4.3.0嵌入式Linux<b class='flag-5'>移植</b>

    RK3568上OpenCV 的编译移植

    OpenCV作为一个开源计算机视觉库,在 Windows、Linux、Android和Mac OS等操作系统上均可运行。OpenCV库因其开源的特性, 而且在各种平台上都能移植,加上其能提供的图像处理算法丰富多样,在 ARM 嵌
    的头像 发表于 12-20 10:20 2352次阅读
    RK3568上<b class='flag-5'>OpenCV</b> 的编译<b class='flag-5'>移植</b>

    RK3568上OpenCV 的编译移植

    OpenCV作为一个开源计算机视觉库,在Windows、Linux、Android和MacOS等操作系统上均可运行。OpenCV库因其开源的特性,而且在各种平台上都能移植,加上其能提供的图像处理
    发表于 12-20 10:08 67次下载

    ELF 1技术|LCD作为终端控制台的方法

    ELF1/ELF1S开发板及显示屏)(ELF1/ELF1S开发板及显示屏)对于嵌入式爱好者来说,调试开发板是必不可少的工作。一般情况下是使用串口作为终端进行调试,如果网络没问题的话,
    的头像 发表于 12-20 17:11 377次阅读
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|LCD作为终端控制台的方法

    ELF 1技术|在NXP源码基础上适配ELF 1开发板的LED功能

    本次源码适配工作是在NXPi.MX6ULLEVK评估板的Linux内核源码(特定版本:Linux-imx_4.1.15)基础上进行的。主要目标是调整功能接口引脚配置,以适应ELF1开发板。下面以
    的头像 发表于 12-29 10:04 778次阅读
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|在NXP源码基础上适配<b class='flag-5'>ELF</b> <b class='flag-5'>1</b>开发板的LED功能

    ELF 1技术|如何支持exFAT和NTFS格式

    。接下来将给各位小伙伴介绍一下如何通过对ELF1开发板进行配置,以实现对exFAT和NTFS格式U盘以及SD卡的支持与挂载。exFAT1、内核源码中需要添加exFAT
    的头像 发表于 01-31 16:37 623次阅读
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|如何支持exFAT和NTFS格式

    ELF 1技术|如何移植Boa 到开发板上

    Boa作为Web服务解决方案显得尤为适宜。接下来,将跟各位小伙伴详细介绍一下基于ELF1开发板移植Boa的方法。1、Boa官网下载源码官网网址:Boadownlo
    的头像 发表于 02-04 09:30 315次阅读
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|如何<b class='flag-5'>移植</b>Boa 到开发板上

    ELF 1技术|如何将Python3.6.9移植到开发板上

    ELF1开发板的Linux4.1.15eMMC镜像中,默认预装了Python2.7。为了适应更多应用场景,有些小伙伴可能需要移植其他版本的Python,下面将以Python3.6.9为例详细介绍
    的头像 发表于 02-22 14:06 386次阅读
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|如何将Python3.6.9<b class='flag-5'>移植</b>到开发板上