logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C++ Qt + OpenCV 实现本地人脸识别系统:摄像头采集、ONNX模型加载、人脸库比对完整流程

本项目基于 C++、Qt Widgets、Qt Multimedia、OpenCV DNN 实现了一个本地人脸识别小系统。系统可以在 Qt 界面中实时显示摄像头画面,点击“开始人脸识别”按钮后,程序会在 5 秒内对摄像头画面中的人脸进行检测和识别。如果当前人脸与本地人脸库中的某个样本相似度超过设定阈值,则显示对应的人名并提示“识别成功”;如果 5 秒内没有识别成功,则显示“未识别”和“识别失败”。

文章图片
#qt#c++
C++ Qt + OpenCV 实现本地人脸识别系统:摄像头采集、ONNX模型加载、人脸库比对完整流程

本项目基于 C++、Qt Widgets、Qt Multimedia、OpenCV DNN 实现了一个本地人脸识别小系统。系统可以在 Qt 界面中实时显示摄像头画面,点击“开始人脸识别”按钮后,程序会在 5 秒内对摄像头画面中的人脸进行检测和识别。如果当前人脸与本地人脸库中的某个样本相似度超过设定阈值,则显示对应的人名并提示“识别成功”;如果 5 秒内没有识别成功,则显示“未识别”和“识别失败”。

文章图片
#qt#c++
独立看门狗(IWDG)

独立看门狗(IWDG)是STM32中基于LSI时钟(40kHz)的硬件定时器,用于检测程序异常。它通过递减计数器监控系统运行,需定期"喂狗"(刷新计数器),否则会触发MCU复位。实验通过HAL库配置IWDG参数(预分频32、重载值1250)实现1秒超时检测。当主循环延时超过1秒未喂狗时,MCU会复位并打印复位标志;延时缩短则可正常喂狗保持运行。该机制适用于工业控制等需要高可靠性

#单片机#嵌入式硬件#stm32
按键及消抖

本文介绍了6种常见的按键消抖方法,重点分析了延时阻塞法的问题并提供了优化方案。延时法虽然简单但会阻塞CPU,影响系统实时性。推荐的非阻塞方案包括:状态机消抖法(通过状态转换和多次确认实现稳定检测)、定时器中断消抖(利用硬件定时器周期性采样)、计数滤波法(通过积分计数和回滞判定)以及操作系统事件消抖(适用于RTOS环境)。此外还介绍了硬件RC滤波和软件滤波算法。这些方法都能有效消除按键抖动,同时避免

#单片机#stm32#嵌入式硬件
SPI与W25Q通信

摘要:本文详细介绍了SPI与IIC两种串行通信协议的对比,重点分析了SPI通信协议的工作原理、四种工作模式及硬件架构。以W25Q128 SPI Flash存储器为例,阐述了其存储结构、指令集和状态寄存器,并提供了基于STM32标准库和HAL库的驱动程序实现方案,包括初始化配置、数据读写、扇区擦除等关键操作。通过代码示例展示了SPI与W25Q128的具体通信流程,强调了写使能、忙状态检测等操作要点,

文章图片
#单片机#stm32
脉冲计数实现

摘要:本文详细介绍了如何配置STM32定时器2(TIM2)通道2(CH2)作为外部脉冲计数器,使用外部时钟模式1(ECM1)对PA1引脚的低电平脉冲进行计数。通过HAL库函数配置定时器参数(PSC=0不分频,ARR=65535满量程),设置上升沿触发,并实现串口打印脉冲数。文中包含完整的代码实现(main.c/counter.h/counter.c),重点讲解了外部时钟模式1的工作原理、参数配置方

#单片机#嵌入式硬件#stm32
到底了