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
将生成的文件通过u盘拷贝到开发板,至此opencv移植就结束啦,希望能对屏幕前的小伙伴提供帮助。
一文读懂软包电池的外观缺陷检测应用
HiHope受邀参加2021南京智能芯片行业沙龙,与行业先锋共探“创「芯」突破”
Sunny King计划在欧洲安装一些区块链节点,决心打入欧洲区块链市场
什么是ISO 9001?
杜绝山寨!MIT无线芯片能核实身份 完成认证后才能充电
ELF 1技术贴|如何移植OpenCV
Honda e动力电池系统热管理与冷板设计解析
offs功能程序介绍
京东方AMOLED正式量产,打破韩企垄断神话绝非易事
Axon9Pro将于10月中旬发布 搭载骁龙845售价约5200元
台积电预计6日完全恢复中毒生产线 未指明iPhone新芯片是否延迟发货
五个方面展望人工智能裹挟下的相机发展历史和趋势
PTCRB认证中WiFi OTA测试简介及常见问题解析
快讯:荣耀被曝强行让员工买股份 王传福承认比亚迪名字瞎编的 蒋凡卸任淘宝董事长
森霸传感资产重组遭问询:为何仅收购格林通67%股权
测试工程师的核心竞争力究竟是什么
农药残留测定仪是什么,有哪些作用
基于单片机控制的DC-DC变换电路
资产管理之输油管线RFID资产管理解决方案的介绍
浅谈焊锡和锡的区别是什么?