ELF 1技术贴|如何移植OpenCV

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

此外OpenCV为了增强其通用性和易用性,还提供了Java、Python、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$ lsopencv-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 buildelf@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-guielf@ubuntu:~/work/a/wenz/opencv-3.4.1$ cmake-gui

 

参考下图进行配置:

​​​​​​​

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-gccC++ :/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


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

​​​​​​​

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-gnueabiCMAKE_INSTALL_PREFIX:   /home/elf/work/a/wenz/opencv-3.4.1/installCMAKE_EXE_LINKER_FLAGS:   -lpthread -lrt -ldl

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

图片

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

图片

正常生成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 buildelf@ubuntu:~/work/a/wenz/opencv-3.4.1/build$ make

报错一:

图片

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

加上这一行 #define HAVE_PTHREAD 

保存、退出

图片

报错二

图片

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)) && \

图片

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

elf@ubuntu:~/work/a/wenz/opencv-3.4.1/build$ make installelf@ubuntu:~/work/a/wenz/opencv-3.4.1/build$ ls ../install/bin  include  lib  LICENSE  share

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

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值