请选择 进入手机版 | 继续访问电脑版
查看: 1037|回复: 5

这个秋天,OpenCV和MCU更配哟(配置篇)

[复制链接]
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3297

    主题

    6542

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    31909
    最后登录
    2024-3-29
    发表于 2022-11-14 14:11:06 | 显示全部楼层 |阅读模式
    这个秋天,OpenCV和MCU更配哟(配置篇)


    本文是一个小系列的第二篇,MCU部署OpenCV的“配置篇”,已经发表了“先跑篇”、稍后会陆续有“实战篇”、“进阶篇”、“优化篇”,带您牵手OpenCV,进入OpenCV的广阔世界。

    书接上文,本期小编将带着大家一起来搭建开发环境,并最终将编译出来的代码部署到目标平台。

    相信大家已经迫不及待,话不多说,直接开整。

    说在前头,有几个小工具需要提前安装下:

    为了保证最终镜像的调试与验证, 安装MCUXPresso作为调试IDE,然后还需要一个串口终端来查看打印(例如TeraTerm,Putty等)

    安装Git软件,负责获取OpenCV源码以及后续代码的维护

    当然,如果想在Linux下开发的话,可能还需要一丢丢的Linux操作基础。
    不过,小编这里就以Windows为例进行说明了,Linux环境下的操作可以说:如有雷同,那必然不是巧合。



    环境搭建

    1. 下载OpenCV源码:https://github.com/opencv/opencv.git 找一个喜欢的位置,执行以下指令,获取源码:
    1. git clone --depth=1 https://github.com/opencv/opencv.git
    复制代码
    2. 下载安装Windows**版CMake:https://cmake.org/files/v3.10/cmake-3.10.2-win64-x64.zip 再找一个我们喜欢的位置,解压之:
    1. your_path/cmake-3.10.2-win64-x64
    复制代码
    3. 之前说到,因为我们这里不借助IDE来进行代码的编译工作,就需要依靠Make工具来完成这一任务。下载MinGW,https://sourceforge.net/projects/mingw/files/latest/download 这里已包含了Make工具。下载完成后就是一键下一步,直到安装成功:
    1. your_path/MinGW
    复制代码
    4. 选择交叉工具链,有两个选择:Keil提供的ARMCLang,或是MCUXpresso中提供的gcc工具链arm-none-eabi-gcc。考虑到Keil作为收费软件,这里直接选择后者。

    不过,这里只是编译代码的工具不同而已,不会影响后续OpenCV代码的配置。

    5. 从小编自己的代码仓库https://gitee.com/crist_xu/opencv_mcu 找到下面两个文件夹,放到上面下载的OpenCV代码路径中:

    fake_root中是一些头文件和工具链配置文件。

    opencv32_stdint用来重新定义int类型,这个是必要的。

    OpenCV模块配置

    1. 在源码路径下,新建文件夹用来存放编译后的代码,起名build。之后在此文件夹中执行:
    1. your_path/cmake-3.10.2-win64-x64\bin\cmake-gui.exe ...
    复制代码
    打开CMake,长这个样子:
    11.png
    2. 点击Configure,进行工程配置
    12.png
    这里能够指定工程管理工具,如果想使用MCXPresso IDE的话,可以选择Eclipse CDT4 – MinGW Makefiles 这样一来会生成一个eclipse 工程,就可以使用IDE操作了。


    不过,小编要反其道而行,选择MinGW Makefiles,这样我们可以直接使用命令行的形式进行代码编译。


    之后点击Specify toolchain file for cross-compiling并点击Next:
    13.png
    下一步是修改工具链文件,指定编译器路径等。


    在上文提到的fake_root文件夹中找到armgcc.cmake / gcc.cmake,如果想要使用ARMCLANG,编辑armgcc.cmake:
    14.png
    这里的HELPER_FILE_PATH就是fake_root文件夹的位置;而TOOLCHAIN_DIR是Keil的安装位置,主要是为了让CMake能够找到对应的工具链。

    如果是想要使用gcc的话,就打开编辑gcc.cmake:
    15.png
    这里的HELPER_FILE_PATH依旧是fake_root文件夹的位置,而TOOLCHAIN_DIR这里就是MCUXpresso的对应位置。

    修改好之后,直接选择GCC作为工具链并点击继续:
    16.png
    点击Finish:
    17.png
    等待配置运行结束,所有属性将以红色字体高亮显示:
    18.png
    3. 模块配置,最好是先点击Grouped以及Advanced,这样一来模块被归类,就可以很容易找到那些关键分子。

    这里我们回忆一下上一篇文章提到的,因为OpenCV包罗万象,拥有众多模块。而不是所有的模块都适合运行在MCU平台上,例如那些需要依赖于OS支持即多进程的模块,因此需要进行小心的适配:大家一定要严格按下表进行配置勾选:
    19.png
    之后再次点击Configure并点击Generate:
    20.png
    4. 代码编译:在build文件夹中,打开PowerShell命令行,运行Make:
    1. your_path/MinGW/bin/mingw32-make.exe -j7
    复制代码
    21.png
    5. 经过漫长的等待,会获得5个静态库,libopencv_world.a,这是build/lib下所有图像处理函数的大集合;其他四个是针对图像编解码的函数:
    22.png
    至此,我们就基本完成了OpenCV源码的配置与编译,并最终获得了5个可爱的静态库,下一步就是如何将其部署到我们的MCU平台上。

    让我们下期见!


    签到签到
    回复

    使用道具 举报

  • TA的每日心情

    2024-2-5 12:06
  • 签到天数: 627 天

    [LV.9]以坛为家II

    94

    主题

    1628

    帖子

    2

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    4429

    热心会员

    最后登录
    2024-2-5
    发表于 2022-11-14 14:21:07 | 显示全部楼层
    不错,MD,可惜今年屁事太多~
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    1 小时前
  • 签到天数: 811 天

    [LV.10]以坛为家III

    5

    主题

    5634

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    6776
    最后登录
    2024-3-29
    发表于 2022-11-14 15:17:16 | 显示全部楼层
    opencv好东西
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3297

    主题

    6542

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    31909
    最后登录
    2024-3-29
     楼主| 发表于 2022-11-14 17:05:01 | 显示全部楼层
    胤幻1988 发表于 2022-11-14 14:21
    不错,MD,可惜今年屁事太多~

    等你回来
    签到签到
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    9 小时前
  • 签到天数: 1254 天

    [LV.10]以坛为家III

    21

    主题

    1万

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    13084
    最后登录
    2024-3-29
    发表于 2022-11-14 21:21:39 | 显示全部楼层
    这位可爱的小编,请将这一步得到的5个可爱的静态库打包供下载,省得我们去拉代码交叉编译,我们的网络环境和你的不太一样哦,你懂的
    跟着日天混 ,三天饱九顿!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    6 天前
  • 签到天数: 1334 天

    [LV.10]以坛为家III

    88

    主题

    4290

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9022
    最后登录
    2024-3-29
    发表于 2022-11-15 13:55:06 | 显示全部楼层
    这个难度我觉得还是会非常大
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-3-29 19:32 , Processed in 0.131295 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表