STMCU小助手
发布时间:2022-10-19 15:23
|
STM32图像处理库介绍 STM32图像处理库(STM32IPL)是一个用C语言编写的开源软件库,它提供图像处理和计算机视觉功能,以便在STM32微控制器上更快地开发视觉分析应用程序。最近,STM32IPL作为STM32Cube的一个中间件组件,。7 ]# C8 u) J. I2 j+ n$ i 众所周知,计算机视觉深度学习模型的输入通常与相机捕获的图像帧不同。深度学习模型的输入可能有不同的维度和不同的图像格式,因此通常需要对原始图像进行一些基本的预处理,例如:调整大小、图像格式转换、归一化等。STM32IPL通过提供一些功能强大且随时可用的软件组件,简化并加速此类图像预处理功能的开发。, Z* E4 ~, S8 W$ r# l5 {0 u, U( O5 l 主要特性7 j; X6 r" j* J0 a9 ~- C! q4 D STM32IPL的关键特性:
STM32IPL在功能上被划分为各种模块,如下图所示: 7 I2 B0 Y- X: B
这些模块可以虚拟分组在以下宏组中:
下图展示了STM32IPL中提供的图像处理功能示例: 原图
[size=1.2em]高斯滤波后
$ u, C# O2 R" W( J 经过Canny边缘检测算法后
镜像翻转后
旋转180°后
- o4 ^- B6 Z( e9 }/ U 软件架构一个典型的使用STM32IPL的STM32应用程序的软件架构如下所示:
8 s/ q; q7 ~8 K2 n STM32IPL位于BSP和HAL之上的中间件内。基本上,几乎所有的STM32IPL函数都与平台无关,除了以下两种函数,它们利用了一些STM32 MCU提供的硬件功能,而这些硬件功能只在部分而不是全部STM32 MCU里提供: ✦ 对文件执行读写操作的I/O函数。特别是用于处理所支持的图像文件格式(如 BMP、PPM、PGM 和 JPEG)的两个读/写函数。这些函数依赖于以下作为STM32Cube中间件组件的第三方开源库:
✦ 通过利用STM32 DMA2D(用于图形操作的硬件加速器)在屏幕上快速绘制图像的函数。 : r- Y" X7 M7 G9 X6 m5 N7 \5 s 高级功能示例! J, w6 k& N7 z 本节将以两个高级功能为例来说明其工作原理以及其应用在图像上的效果:霍夫变换和目标检测。 霍夫变换是一种特征提取方法,用于检测图像中的线条和圆形等简单形状。这里的“简单”形状是指只需要几个参数就能表示的形状。例如,一条线可以用两个参数(斜率、截距)来表示,而一个圆有三个参数——圆心坐标和半径。霍夫变换在寻找图像中这种形状方面有出色的表现。 STM32IPL支持两种霍夫变换函数:
( [3 G3 I$ E! g7 n) t 下面两张照片显示了使用霍夫变换进行线条检测的结果。 5 ]8 b. b+ D! A6 U/ G" |% h 原图
通过霍夫变换进行线条检测后
请注意,检测到的线的质量很大程度上取决于边缘图的质量。因此,在现实世界中,霍夫变换通常在当您可以控制环境并因此获得一致的边缘图,或者当您可以针对您正在寻找的特定类型的边缘来训练边缘检测器时使用。 下面的另外两张照片显示了使用霍夫变换进行圆检测的结果。同样,结果的质量很大程度上取决于您可以找到的边缘的质量,以及您对要检测的圆的大小有多少先验知识。 " D! K- v7 F4 ?2 M9 g) L! X 原图
通过霍夫变换进行圆检测后
目标检测是一种计算机视觉技术,可以识别和定位图像或视频中的对象。常用于自动驾驶汽车、机器人、面部识别等许多应用场景。 / i* Q; G1 I3 Q7 O2 b STM32IPL提供三种函数用于目标检测:
/ T7 [6 ~ i9 a& O3 g4 Q$ n 以下照片显示了面部检测和眼部检测功能的结果: 原图
眼部及面部检测后
最后,要获得STM32IPL库,用户需下载最新的FP-AI-VISION1功能包,然后该库便可以在以下路径找到: |
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
微信公众号
手机版