资源简介
STM32人脸识别代码,正点原子探索者板使用。
代码片段和文件信息
#include “atk_frec.h“
#include “malloc.h“
#include “ff.h“
#include “stdio.h“
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//本人脸识别程序由ALIENTEK提供我们提供1个LIB(即:ATKFREC.lib)供大家使用
//功能:利用摄像头实现人脸识别.
//说明:本识别库需要用到内存管理内存总占用数在560KB左右(20个人脸).每增加一张人脸内存占增加10KB左右.
//限制:由于本识别库以M3/M4为目标处理器内存有限算法上进行了大量阉割所以很多功能不太完善效果也不是
// 很好.且没有做识别有效检查(输入错误的人脸也会有结果输出).所以次代码仅供大家参考用.
//
//其他需求:
//1摄像头模块一个.
//2SD卡一张
//
//使用方法:
//第一步:调用atk_frec_initialization函数初始化人脸识别库
//第二步:调用atk_frec_add_a_face函数添加人脸模板(如果已经有了可以忽略次步)
//第三步:调用atk_frec_load_data_model函数加载所有模板到内存里面(仅在添加新模板后需要如没有添加新模板则可忽略此步)
//第四步:调用atk_frec_recognition_face函数获取识别结果.
//第五步:调用atk_frec_delete_data函数可以删除一个人脸模板
//第六步:如果不想再用识别库则调用atk_frec_destroy函数释放所有内存结束人脸识别.
//
//版本:V1.0
//正点原子@ALIENTEK
//Copyright(C) 广州市星翼电子科技有限公司 2009-2019
//All rights reserved
//版权所有,盗版必究。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//内存设置函数
void atk_frec_memset(char *pchar cunsigned long len)
{
mymemset((u8*)p(u8)c(u32)len);
}
//内存申请函数
void *atk_frec_malloc(unsigned int size)
{
return mymalloc(SRAMEXsize);
}
//内存释放函数
void atk_frec_free(void *ptr)
{
myfree(SRAMEXptr);
}
//保存人脸识别所需的数据
//index:要保存的数据位置(一张脸占一个位置)范围:0~MAX_LEBEL_NUM-1
//buf:要保存的数据缓存区首地址
//size:要保存的数据大小
//返回值:0正常
// 其他错误代码
u8 atk_frec_save_data(u8 indexu8* bufu32 size)
{
u8* path;
FIL *fp;
u32 fw;
u8 res;
path=atk_frec_malloc(30); //申请内存
fp=atk_frec_malloc(sizeof(FIL)); //申请内存
if(!fp)
{
atk_frec_free(path);
return ATK_FREC_MEMORY_ERR;
}
sprintf((char*)pathATK_FREC_DATA_PNAMEindex);
f_mkdir(ATK_FREC_DATA_PDIR); //创建文件夹
res=f_open(fp(char*)pathFA_WRITE|FA_CREATE_NEW);
if(res==FR_OK)
{
res=f_write(fpbufsize&fw); //写入文件
}
f_close(fp);
if(res)res=ATK_FREC_READ_WRITE_ERR;
atk_frec_free(path);
atk_frec_free(fp);
return res;
}
//读取人脸识别所需的数据
//index:要读取的数据位置(一张脸占一个位置)范围:0~MAX_LEBEL_NUM-1
//buf:要读取的数据缓存区首地址
//size:要读取的数据大小(size=0则表示不需要读数据出来)
//返回值:0正常
// 其他错误代码
u8 atk_frec_read_data(u8 indexu8* bufu32 size)
{
u8* path;
FIL *fp;
u32 fr;
u8 res;
path=atk_frec_malloc(30); //申请内存
fp=atk_frec_malloc(sizeof(FIL)); //申请内存
if(!fp)
{
atk_frec_free(path);
return ATK_FREC_MEMORY_ERR;
}
sprintf((char*)pathATK_FREC_DATA_PNAMEindex);
res=f_open(fp(char*)pathFA_READ);
if(res==FR_OK&&size)
{
res=f_read(fpbufsize&fr); //读取文件
if(fr==size)res=0;
else res=ATK_FREC_READ_WRITE_ERR;
}
f_close(fp);
if(res)res=ATK_FREC_READ_WRITE_ERR;
atk_frec_free(path);
atk_frec_free(fp);
return res;
}
//删除一个人脸数据
//index:要保存的数据位置(一张脸占一个位置)范围:0~MAX_LEBEL_NUM-1
//返回值:0正常
// 其他错误代码
u8 atk_frec_delete_data(u8 index)
{
u8* path;
u8 res;
path=atk_frec_malloc(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-17 15:43 人脸识别代码\
目录 0 2015-10-02 16:19 人脸识别代码\ATKFREC\
文件 118374 2015-10-02 12:57 人脸识别代码\ATKFREC\ATKFREC.lib
文件 3792 2015-10-02 16:08 人脸识别代码\ATKFREC\atk_frec.c
文件 4653 2015-10-02 16:08 人脸识别代码\ATKFREC\atk_frec.h
文件 1405 2015-10-02 16:08 人脸识别代码\ATKFREC\readme.txt
目录 0 2015-10-02 16:19 人脸识别代码\FATFS\
目录 0 2015-10-02 16:19 人脸识别代码\FATFS\doc\
文件 3248 2014-01-15 00:31 人脸识别代码\FATFS\doc\css_e.css
文件 3661 2014-01-15 00:31 人脸识别代码\FATFS\doc\css_j.css
目录 0 2018-10-17 15:43 人脸识别代码\FATFS\doc\en\
目录 0 2015-10-02 16:19 人脸识别代码\FATFS\doc\img\
文件 1063 2013-09-18 21:47 人脸识别代码\FATFS\doc\img\app1.c
文件 1597 2013-10-18 21:41 人脸识别代码\FATFS\doc\img\app2.c
文件 3811 2014-01-13 20:56 人脸识别代码\FATFS\doc\img\app3.c
文件 10365 2014-01-07 15:10 人脸识别代码\FATFS\doc\img\app4.c
文件 1414 2011-09-02 22:10 人脸识别代码\FATFS\doc\img\f1.png
文件 1458 2007-02-10 03:12 人脸识别代码\FATFS\doc\img\f2.png
文件 1039 2007-02-10 03:12 人脸识别代码\FATFS\doc\img\f3.png
文件 2335 2008-01-05 20:27 人脸识别代码\FATFS\doc\img\f4.png
文件 2479 2008-01-05 20:27 人脸识别代码\FATFS\doc\img\f5.png
文件 1436 2010-08-21 10:13 人脸识别代码\FATFS\doc\img\f6.png
文件 11388 2013-05-12 12:31 人脸识别代码\FATFS\doc\img\f7.png
文件 11421 2014-02-19 22:38 人脸识别代码\FATFS\doc\img\funcs.png
文件 2401 2009-03-20 21:57 人脸识别代码\FATFS\doc\img\la
文件 2379 2009-06-13 21:48 人脸识别代码\FATFS\doc\img\la
文件 7932 2013-12-27 12:20 人脸识别代码\FATFS\doc\img\modules.png
文件 19068 2008-10-18 19:31 人脸识别代码\FATFS\doc\img\rwtest.png
文件 8153 2010-09-13 10:55 人脸识别代码\FATFS\doc\img\rwtest2.png
文件 3011 2009-06-15 00:03 人脸识别代码\FATFS\doc\img\rwtest3.png
目录 0 2018-10-17 15:43 人脸识别代码\FATFS\doc\ja\
............此处省略198个文件信息
相关资源
- Keil.STM32L0xx_DFP.2.0.0.pack
- LSM6DSL陀螺仪+加速度传感器带中断唤醒
- ADS1256-STM32+数据采集板资料.zip
- 科大讯飞 语音听写 人脸识别 sdk
- stm32f103c8t6-max31865-pt100测温
- Keil5下的STM32F407程序
- STM32L152 RTC 读取时间和日期
- STM32固件库使用手册(中文版)
- stm32F103C8外部flash图片显示
- STM32 GPIO和定时器 模拟串口
- ZLIB解压缩STM32工程
- STM32控制sg90舵机代码.rar
- 手环(一)---计步、速度等等.rar
- STM32F103 ADC测电压 代码
- Mini_oneNET.zip
- zw_qq_39340220-10661258-stm32机械手臂小车
- 基于STM32的室内温度控制系统.doc
- stm32f103测量pm2.5源码
- 基于stm32的闹钟rtc
- 轩微科技STM32编程器控制平台.rar
- MQ7浓度采集程序
- zw_OLED-STM32F4-IIC.zip
- 基于PCA的人脸识别技术的研究
- 基于LBP算法的人脸识别研究
- 基于STM32篮球比赛计分
- STM32F103C8T6与MQTT通信的源码
- USART基于hal库stm32f407串口通讯.rar
- stm32之传感器DHT11.zip
- STM32F4基于HAL库的LCD显示实验
- STM32硬件IIC主机例程以读写EEPROM为例
评论
共有 条评论