• 正文
  • 推荐器件
  • 相关推荐
申请入驻 产业图谱

ELF 1技术贴 | 如何移植OpenCV

2024/01/09
1250
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
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$ 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
参考下图进行配置:

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

点击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-gnueabi
CMAKE_INSTALL_PREFIX:   /home/elf/work/a/wenz/opencv-3.4.1/install
CMAKE_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 build
elf@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 install
elf@ubuntu:~/work/a/wenz/opencv-3.4.1/build$ ls ../install/
bin  include  lib  LICENSE  share
将生成的文件通过U盘拷贝到开发板,至此OpenCV移植就结束啦,希望能对屏幕前的小伙伴提供帮助。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
IL4208 1 Vishay Intertechnologies Triac Output Optocoupler, 1-Element, 5300V Isolation, DIP-6

ECAD模型

下载ECAD模型
$3.34 查看
ECS-120-12-33Q-JES-TR 1 ECS International Inc Parallel - Fundamental Quartz Crystal, 12MHz Nom, SMD, 4 PIN
$0.91 查看
PCA9546APW,118 1 NXP Semiconductors PCA9546A - 4-channel I2C-bus switch with reset TSSOP 16-Pin

ECAD模型

下载ECAD模型
$2.15 查看
飞凌嵌入式

飞凌嵌入式

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。收起

查看更多

相关推荐