0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32 图像处理函式库介绍

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-07-11 11:39 次阅读

STM32图像处理函式库STM32IPL是由 C 语言所编写的开放原始码软件函式库,提供了图像处理和计算机视觉功能,能加快在意法半导体(ST)的STM32微控制器上开发视觉分析的应用。本产品最新版(v3.1.0)FP-AI-VISION1 功能套件中以STM32Cube 中间件的形式推出。

一般来说,视觉深度学习模型的输入不同于相机拍摄的图像,深度学习输入因为具有不同维度及图像格式,会需要预先处理原图,例如缩放、影像格式转换和标准化等。而STM32IPL可提供实用且现成的软件套件,以简化及加速影像预处理功能的开发。

主要特色

STM32IPL的主要特色如下:

-为开发人员提供实用且现成的软件套件,节省开发STM32平台图像处理和计算机视觉应用的时间。

-满足使用嵌入式系统的图像处理及计算机视觉功能时最常见的需求。

-透过最大程度的封装和隐藏,简化且加速应用程序的开发、降低常见之图像处理的复杂度,并提升计算机视觉运算的能效。

STM32IPL依不同功能配置于各种模块中,如下图所示:

1666335746286044.png

这些模块可被划分至以下分组:

- 函式库初始化和去初始化分组(深绿模块)

- 影像建立、初始化和发布等分组(浅绿色模块)

- 影像转换功能,如滤波、色彩转换、缩放、morphological operators及warping等分组(深黄色模块)

- 特征和对象撷取功能,如边缘和斑点侦测器以及霍夫转换等分组(浅黄色模块)

- 线条、长方形和椭圆形等图形操作功能分组(深蓝模块)

- 影像读取和写入功能的分组(浅蓝模块)

- 在影像内绘制图形元素的功能分组(深灰模块)

- 最后一个群组包含计算完整图像和图像统计等其他模块(浅灰模块)

下方照片为STM32IPL的图像处理功能范例:

软件架构

采用STM32IPL的典型STM32应用程序软件架构如下所示:

1666335714474110.png

STM32IPL位于BSP和HAL的中间件内,除了下列两种利用了部分STM32MCU所提供的硬件功能之外,绝大部分的STM32IPL功能皆不受平台影响:

-在档案上执行读取/写入作业的I/O功能。指的是两个用于处理受支持影像文件格式 (如 BMP、PPM、PGM 和 JPEG)的读取/写入函式。上述函式的运作仰赖于下列第三方开放原始码函式库(属于STM32Cube中间件组件的一部分):

oFatFs提供在FatFS文件系统上的读取/写入操作功能。例如读取和写入 microSD卡内的影像。

oLibJPEG提供JPEG编码和译码功能。

-此函式能让STM32DMA2D在屏幕上快速绘制图像,其中DMA2D为适用于图形作业的硬件加速器。

高阶功能范例

本章节以霍夫转换和物体侦测两项高阶功能作为范例,说明其运作原理及对于影像的作用:

霍夫转换

霍夫转换是一种能侦测简易形状的特征撷取方法,而 “简易” 是指可以用少数参数来表示的图案,例如:一条线可由斜率、截距两项参数做表示,而圆形则是以圆心坐标和半径三项参数做表示。因此,霍夫转换技术十分适用于在图像中找出像是线条、圆形的图案。

STM32IPL支持两种霍夫转换功能:

-STM32Ipl_FindLines() 可透过霍夫转换找出影像中所有线条。

-STM32Ipl_FindCircles() 则可透过霍夫转换找出影像中的圆形。

下方两张照片展示了使用霍夫转换侦测线条的结果。

经过霍夫转换的线条侦测后结果:

然而,侦测到的线条质量有很大程度取决于edge map,因此在实务上,使用霍夫转换技术的前提是要能够控制环境,从而得出一致的edge map,或是透过训练边缘侦测器,找出所需的特定边缘种类。

下方两张照片为使用霍夫转换侦测圆形的结果,结果同样有很大程度取决于可用边缘的质量,以及对于所需侦测圆形尺寸的先备知识。

经过霍夫转换的圆形侦测后结果:

1666335688341153.png

物体侦测

物体侦测是一种计算机视觉技术,可辨识和定位图像或影片中的物体,此技术常用于自驾车、机器人、人脸辨识等情境。

STM32IPL提供三种物体侦测功能:

-STM32Ipl_LoadFaceCascade() 载入正面脸部串行。

-STM32Ipl_LoadEyeCascade() 载入眼部串行。

-STM32Ipl_DetectObject() 侦测特定串行描述的对象。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像处理
    +关注

    关注

    26

    文章

    1264

    浏览量

    56289
  • STM32
    +关注

    关注

    2254

    文章

    10786

    浏览量

    351856
  • 软件
    +关注

    关注

    69

    文章

    4521

    浏览量

    86569
收藏 人收藏

    评论

    相关推荐

    常用的Python图像处理介绍

    本文主要 介绍了一些简单易懂最常用的 Python 图像 处理
    的头像 发表于08-19 10:54 1867次阅读

    STM32标准、HAL和LL介绍

    我们在进行 STM32开发的时候,使用寄存器进行开发的终究是少数,大多数人还是习惯用库函数进行开发。到目前为止,有标准外设 、HAL 、LL 三种。本文将分别
    发表于06-21 15:13 1.2w次阅读
    <b class='flag-5'>STM32</b>标准<b class='flag-5'>库</b>、HAL<b class='flag-5'>库</b>和LL<b class='flag-5'>库</b><b class='flag-5'>介绍</b>

    【OK210申请】基于嵌入系统的图像处理

    的同时,对嵌入 系统有更深的理解。项目描述:首先移植Linux系统到板卡上,熟悉嵌入 操作系统后,像利用树莓派一样移植 图像 处理 ,接入外部摄
    发表于07-31 20:13

    IAR环境如何将数学编排到sLib保护区

    IAR环境如何将数学 编排到sLib保护区在IAR 环境下,如何将数学 编排到SLIB
    发表于10-20 07:03

    利用API 增强VB 的图像处理功能

    本文 介绍了应用API 函数增强Visual Basic 的 图像 处理功能的方法。用API 直接对显示缓存操作的函数进行 图像 处理,扩展了VB 的
    发表于08-28 09:42 13次下载

    Python中最常用十大图像处理详细介绍

    本文主要 介绍了一些简单易懂最常用的Python 图像 处理 当今世界充满了各种数据,而 图像是其中高的重要组成部分。然而,若想其有所应用,我们需要
    的头像 发表于07-06 11:08 2.1w次阅读

    关于STM32的四类嵌入软件 (

    关于 STM32的四类嵌入 软件(
    的头像 发表于03-04 09:27 3038次阅读

    image图像处理的PHP资料免费下载

    本文档的主要内容详细 介绍的是image 图像 处理的PHP 资料免费下载。
    发表于05-27 12:15 10次下载
    image<b class='flag-5'>图像</b><b class='flag-5'>处理</b>的PHP<b class='flag-5'>库</b>资料免费下载

    stm32移植U8G2图像指南

    stm32移植U8G2 图像 指南U8G2图形 介绍移植准备工作开始移植文件修改keil配置修改U8G2源码u8g2_d_setup.c修改u
    发表于12-22 18:55 25次下载
    <b class='flag-5'>stm32</b>移植U8G2<b class='flag-5'>图像</b><b class='flag-5'>库</b>指南

    STM32图像处理介绍

    STM32IPL位于BSP和HAL之上的中间件内。基本上,几乎所有的 STM32IPL函数都与平台无关,除了以下两种函数,它们利用了一些 STM32MCU提供的硬件功能,而这些硬件功能只在部分而不是全部
    的头像 发表于05-05 10:14 5088次阅读

    AN4502_基于STM32Cube的SMBUS和PMBUS介绍

    AN4502_基于 STM32Cube 的SMBUS和PMBUS 介绍
    发表于11-21 17:06 7次下载
    AN4502_基于<b class='flag-5'>STM32</b>Cube<b class='flag-5'>库</b>的SMBUS和PMBUS<b class='flag-5'>介绍</b>

    分享5个用于图像处理的Python

    提取特征。 在今天的文章中,我们将 介绍5个最好的Python ,它们可能会帮助你执行 图像 处理,如裁剪、缩放等。
    的头像 发表于02-08 16:23 1195次阅读
    分享5个用于<b class='flag-5'>图像</b><b class='flag-5'>处理</b>的Python<b class='flag-5'>库</b>

    初级用户手册 IMAPCAR2图像处理

    初级用户手册 IMAPCAR2 图像 处理
    发表于04-21 18:51 1次下载
    初级用户手册 IMAPCAR2<b class='flag-5'>图像</b><b class='flag-5'>处理</b><b class='flag-5'>库</b>

    STM32HAL的功能和使用方法STM32HAL和标准的区别

    和可维护性,从而节省开发成本和时间。 STM32HAL STM32系列芯片的HAL ,由ST公司提供和维护。下面将 介绍
    发表于08-08 18:21 3543次阅读

    使用libcamera操控树莓派摄影机

    libcamera是什么?它是两个字的合写,一是 library的简称lib,另一是摄影机的camera(或称影像传感器imagesensor)。它是一套开放源代码的
    的头像 发表于08-10 16:06 1579次阅读
    使用libcamera<b class='flag-5'>函</b><b class='flag-5'>式</b><b class='flag-5'>库</b>操控树莓派摄影机