文章目录

  • 1 准备工作
  • 2 设置 cmake
  • 3 编译
  • 4 移植
  • 5 编译静态库
  • 6 下载

1 准备工作

  • 在 ubuntu 上安装 cmake-gui
    sudo apt-get install cmake-gui
  • 下载opencv及contrib源代码到虚拟机
    opencv下载
    opencv_contrib下载

2 设置 cmake

  • 创建文件夹 build_hi3519a,在该文件夹下创建文件夹 install

  • 解压 opencv 压缩包

  • 使交叉编译工具链生效
    source /etc/profile
    export LC_ALL=C

  • 命令行下输入:
    cmake-gui

  • 填写你的 opencv 解压目录和刚刚创建的 build_hi3519a 目录地址

  • 选择 Configure,之后选择第四个选项,点击 Next

  • 设置如下,其中 C 和 C++ 内填交叉编译工具链地址,Target Root 先不填

  • 点击 Finish 会 Configure 一直到成功

  • 选择CMAKE_INSTALL_PREFIX。 install 是刚刚创建的,后面的 make install 会把编译好的opencv libs拷贝到该目录下

  • 给 CMAKE_EXE_LINKER_FLAGS 加上参数 -lpthread -lrt -ldl

  • 设置 CMAKE_FIND_ROOT_PATH 为交叉编译工具链的 bin 目录

  • 勾选 BUILD_opencv_world

  • 点击 Generate,等待完成

  • 此时可以关闭 cmake-gui 界面

3 编译

  • 进入之前解压的 opencv 源代码文件目录下
  • 进入目录 cd 3rdparty/protobuf/src/google/protobuf/stubs
  • 修改内容:
    vim common.cc
    在头文件下添加内容:
    #define HAVE_PTHREAD
  • 进入 build_hi3519a 目录下编译
    make -j4
    make install
  • 编译完成后可以在 install 目录下看到 libopencv_world.so 文件

4 移植

  • 将生成的 libopencv_world.so 文件拷贝到 /opt/hisi-linux/x86-arm/arm-himix200-linux/lib 目录下
  • 精简 so 文件
    arm-himix200-linux-strip libopencv_world.so
    使用 ls -lh 可以看出现在 libopencv_world.so 已经明显变小
  • 复制精简后的libopencv_world.so 到开发板的 /lib 目录下
  • 最后检验是否成功
    创建 demo.cpp 文件
#include <iostream>
#include <stdio.h>
#include <opencv2/highgui.hpp>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>using namespace cv;
using namespace std;int main()
{       Mat image(200, 150, CV_8UC1);for (int i = 0; i < image.rows; i++) {uchar* p = image.ptr<uchar>(i);for (int j = 0; j < image.cols; j++){if (i < 80 && i>50)     {p[j] = 0;}else{p[j] = 255;}}}imwrite("demo.jpg", image);return 0;
}
  • 交叉编译命令
    arm-himix200-linux-g++ -Wno-psabi -I /home/build_hi3519a/install/include/opencv4/ -L /home/build_hi3519a/install/lib/ -lopencv_world -lpthread -lrt -ldl -o demo demo.cpp
  • 将可执行文件 demo 复制到开发板,执行生成 demo.jpg 文件
  • 复制 demo.jpg 到虚拟机查看

5 编译静态库

勾选 BUILD_opencv_world 之后再取消勾选 BUILD_share的有关选项。

经过实验opencv4.0.1 opencv3.4.11对arm64位支持不是很好。opencv4.0.1可以编译出静态库,但是链接的时候会报错。opencv3.4.11直接就无法编译出来。

最后选择使用opencv3.4.3版本
链接的时候,命令变为
libopencv_world.a libIlmImf.a liblibjasper.a liblibjpeg-turbo.a liblibpng.a liblibtiff.a liblibwebp.a libzlib.a -lpthread -lrt -ldl -lm
其他的静态库在 ./share/3rd…/lib 目录下

6 下载

3519-opencv4.0.1版本编译的libopencv_world.so文件

3559-opencv4.0.1版本编译的libopencv_world.so文件

海思Hi3519A开发(4.移植OpenCV4.0.1到Hi3519A开发板)相关推荐

  1. 海思Hi3559A平台移植 opencv4.0.0

    原文:https://blog.csdn.net/xclshwd/article/details/85257117 海思Hi3559A平台移植 opencv4.0.0 2018年12月26日 09:5 ...

  2. 【海思篇】【Hi3516DV300】一、 逐步搭建开发环境

    目的: 熟悉环境和流程,让更多的爱好者了解海思.加入海思. 目录 1 安装ubunu14 2 软件包安装 3 安装交叉编译工具 4 安装SDK 步骤 1.解压缩 SDK 包 步骤 2. 展开 SDK ...

  3. 在华为海思上面实现wpa_supplicant移植和最终连接上网

    连续搞了几天,终于在这个周日的晚上搞出来了.流程如下: 一.下载源码        http://hostap.epitest.fi/wpa_supplicant/ 下载wpa_supplicant- ...

  4. debian 开发版 移植_Debian 下安装 WineHQ 最新开发版和Staging版的方法

    一直来为了使用Wine,都是在Ubuntu下安装,毕竟Ubuntu下安装相对比较简单,而Debian下默认安装都是1.4的老版本.今天通过官方 https://wiki.winehq.org/Debi ...

  5. 海思Hi3519A 基础入门教程

    <海思Hi3519A开发(1.搭建开发环境)> <海思Hi3519A开发(2.编译uboot与kernel)> <海思Hi3519A开发(3.烧录uboot.kernel ...

  6. 海思Hi3559AV100移植Qt5.9.9(一)

    目录 前言 1 基础环境搭建 1.1 概述 1.2 Ubuntu虚拟机安装 1.2.1 准备 1.2.2 安装 1.3 软件包安装 2 安装编译SDK 2.1 准备 2.2 解压缩SDK 2.3 展开 ...

  7. usb_modeswitch移植到海思3531D平台(华为E8372h-155)

    usb_modeswitch移植到Hi3531D平台 PC宿主机:ubuntu 16.04LTS 板子处理器:Hi3531DV100 4G Dongle:华为随行WiFi 2mini (E8372h- ...

  8. 【华为出品】物联网全栈开发实战营第2期来啦!送海思开发板

    物联网一直在改变我们生活的方方面面.可穿戴设备有助于监控我们的偏好.习惯和健康状况.智能家居设备可提高家居的舒适度.安全性和便利性.城市利用连接的数字设备收集的海量数据(数十亿个)来改善城市规划.制造 ...

  9. 海思Hi3536开发——处理器整体架构了解

    1.处理器整体风景图  Processor Core    z ARM Cortex A17 quad-core@maximum 1.4 GHz       − 32 KB L1 I-cache, 3 ...

最新文章

  1. CascadePSP 测试笔记
  2. C# 使用new 关键字显式隐藏从基类继承的成员和内部类的使用
  3. Java创建一个文件变量_java如何定义一个类,创建它的成员变量和方法?
  4. 蘑菇街2015校招 Java研发笔试题 详解,2015java
  5. 深度学习如何均衡精度、内存、计算和通信开销?
  6. (二分搜索法尺取法)subsequence
  7. Oracle 数据怎么实时同步到 PgSQL | 亲测干货分享建议收藏
  8. Jupyter Notebook命令行启动报错: DLL load failed
  9. 个人收藏的flex特效网址【经典中的极品】
  10. socket 网络编程
  11. java 自定义结构_java自定义构造二叉树及其遍历
  12. BSN: Boundary-Sensitive Network for Temporal Action Proposal Generation
  13. 日语口语中需要注意的问题~ 不定期更新
  14. python标准化输出到txt_3大利器推荐,帮你写出规范漂亮的python代码
  15. Nike Zoom KD 5 “OKC / Away” colorway
  16. java面试逻辑题_精选程序员面试常问的逻辑题
  17. YouTube视频推荐系统
  18. Django教程(自强学堂)
  19. Fluent Mybatis 牛逼
  20. 一文学会 PC搭建opengl es C++开发环境

热门文章

  1. 最新车载以太网解决方案,你知多少?
  2. matplotlib的读书笔记
  3. 指令级并行(ILP)技术
  4. linux查找最近新增的大文件
  5. shell if/then/elif/else/fi
  6. vue3 动态传值给子组件
  7. BLAM的安装与使用
  8. 西安研究所 计算机专业,智能计算研究所
  9. 调取python背景减法库:MOG2和KNN,非常好用
  10. freebsd jail nginx php-fpm mysql weberp安装