ESP32 MicroPython 颜色及二维码识别⑫

news2025/1/8 12:30:39

ESP32 MicroPython 颜色及二维码识别⑫

    • 1、颜色识别
    • 2、二维码识别

1、颜色识别

使用AI颜色识别功能,可以实现颜色辨别、颜色追踪等应用。颜色识别模型内置有9种常见的颜色识别和一种颜色学习识别模式。他们分别是:

ai.COLOR_RED 表示识别红色
ai.COLOR_ORANGE 表示识别橙色
ai.COLOR_YELLOW 表示识别黄色
ai.COLOR_GREEN 表示识别绿色
ai.COLOR_CYAN 表示识别青色
ai.COLOR_BLUE 表示识别蓝色
ai.COLOR_PURPLE 表示识别紫色
ai.COLOR_WHITE 表示识别白色
ai.COLOR_BLACK 表示识别黑色
ai.COLOR_STUDY 表示学习颜色模式

对于学习颜色识别模式(ai.COLOR_STUDY),需要先将摄像头对准要识别的颜色,进行学习,学习成功后即可完成特定颜色识别。

实验目的
使用摄像头的AI颜色识别模型,识别红色。并在显示屏显示出图像
实验内容
颜色识别模型中使用到2层图像, 所以本次例程配置摄像头图层为2
cam.OV2640(frame=2) ,构建颜色识别模型参数为设置识别红色ai.colorDetection( color = ai.COLOR_RED,displayType=1)。之后启动AI识别,在主循环不停读取识别结果,并在调试窗口打印识别信息。
参考代码
参考代码文件可以在资料包文件夹“智能小车mpy例程\基础实验\11-AI摄像头实验\06-颜色识别”文件夹下的main.py ,下面为完整代码内容:

'''
AI摄像头实验-颜色识别
'''
from machine import Pin,Timer  #导入Pin引脚和Time定时器模块
from lcd import LCD20          #导入2.0寸LCD模块
import cam                     #导入摄像头模块
import time,network
import ai                      #导入AI模块

#颜色值定义,(R,G,B) 0~255代表颜色值
red = (255,0,0)         #红色
green = (0,255,0)       #绿色
blue = (0,0,255)        #蓝色
white = (255,255,255)   #白色
back = (0,0,0)          #黑色

#创建LCD对象 dir 显示方向为竖屏,1、3竖屏,2、4屏横
ld=LCD20()  #默认为竖屏1

# 整屏填充指定颜色
ld.fill(back)

myCam = cam.OV2640(frame=2)    #创建摄像头对象,图层为2层

#设置摄像头尺寸240X240
myCam.framesize(cam.LCD240X240) #显示屏对应的分辨率 方便显示
myCam.set_hmirror(0) #设置摄像头水平镜像关闭
'''
创建AI颜色检测对象
color:颜色检测类型
COLOR_RED:红色
displayType: 显示方式为 1-LCD,2-WEB网页显示
'''
myAi = ai.colorDetection( color = ai.COLOR_RED,displayType=1) #启动红色检测,LCD显示方式

myAi.start() #启动AI检测

while True:
    mValue=myAi.read() #读取检测到数据
    print(mValue)
    time.sleep_ms(100)

实验结果
运行程序后,使用摄像头对准要识别的颜色,摄像头区域有红色的可以识别出来。并用矩形框标记出来,调试界面打印输出相应的区域矩形。

在这里插入图片描述

在这里插入图片描述

2、二维码识别

实验目的
使用小车摄像头识别二维码信息
实验内容
通过摄像头识别二维码中的内容,并且在调试窗口打印出来。
参考代码
参考代码文件可以在资料包文件夹“智能小车mpy例程\基础实验\11-AI摄像头实验\07-二维码识别”文件夹下的main.py ,下面为完整代码内容:

'''
AI摄像头实验-二维码识别
'''
from machine import Pin,Timer  #导入Pin引脚和Time定时器模块
from lcd import LCD20          #导入2.0寸LCD模块
import cam                     #导入摄像头模块
import time
import ai                      #导入AI模块

#颜色值定义,(R,G,B) 0~255代表颜色值
red = (255,0,0)        #红色
green = (0,255,0)      #绿色
blue = (0,0,255)       #蓝色
white = (255,255,255)  #白色
back = (0,0,0)         #黑色

#创建LCD对象 dir 显示方向为竖屏,1、3竖屏,2、4屏横
ld=LCD20()  #默认为竖屏1

# 整屏填充指定颜色
ld.fill(back)

myCam = cam.OV2640()    #创建摄像头对象,图层为1层

#设置摄像头尺寸240X240
myCam.framesize(cam.LCD240X240) #显示屏对应的分辨率 方便显示
myCam.set_hmirror(0) #设置摄像头水平镜像关闭
'''
创建AI二维码扫描对象
'''
myAi = ai.codeRecognition() #只支持LCD显示,监测结果在显示屏显示,只支持字符串显示,中文显示出异常

myAi.start()                #启动AI检测

while True:
    mValue=myAi.read() #读取检测到数据
    if mValue != None: #读取结果不为空,表示已经扫描到二维码
        print(mValue)
    time.sleep_ms(100)

实验结果
运行程序后摄像头对准下面二维码,二维码信息为“hello mycar”,识别到后在显示屏显示出识别内容,并且在调试界面打印出识别结果。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
相关代码及固件:
https://download.csdn.net/download/lu330274924/88549191

智能小车购买链接
技术支持抖音:易驱达Easy Drive Coming
淘宝官方商城:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-18887194911.15.135014bdaKI6mV&id=715385110550

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1241241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】深入解开指针(四)

🌈write in front :🔍个人主页 : 啊森要自信的主页 ✏️真正相信奇迹的家伙,本身和奇迹一样了不起啊! 欢迎大家关注🔍点赞👍收藏⭐️留言📝>希望看完我的文章对你有小小的帮助&am…

使用 PowerShell 创建共享目录

在 Windows 中,可以使用共享目录来将文件和文件夹共享给其他用户或计算机。共享目录可以通过网络访问,这使得它们非常适合用于文件共享、协作和远程访问。 要使用 PowerShell 创建共享目录,可以使用 New-SmbShare cmdlet。New-SmbShare cmdl…

【C++高阶(四)】红黑树深度剖析--手撕红黑树!

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 红黑树 1. 前言2. 红黑树的概念以及性质3. 红黑…

图像分类原理

一、什么是图像分类(Image Classification) 图像分类任务是计算机视觉中的核心任务,其目标是根据图像信息中所反映的不同特征,把不同类别的图像区分开来。 二、图像分类任务的特点 对于人来说,完成上述的图像分类任务简直轻而易举&#xf…

Elasticsearch:FMA 风格的向量相似度计算

作者:Chris Hegarty 在 Lucene 9.7.0 中,我们添加了利用 SIMD 指令执行向量相似性计算的数据并行化的支持。 现在,我们通过使用融合乘加 (Fused Mulitply-Add - FMA) 进一步推动这一点。 什么是 FMA 乘法和加法是一种常见的运算,…

聚观早报 |快手Q3营收;拼多多杀入大模型;Redmi K70E开启预约

【聚观365】11月23日消息 快手Q3营收 拼多多杀入大模型 Redmi K70E开启预约 华为nova 12系列或下周发布 亚马逊启动“AI就绪”新计划 快手Q3营收 财报显示,快手第三季度营收279亿元,同比增长20.8%;期内盈利21.8亿元,去年同期…

梁培强:塑造下一代投资高手

在当前全球经济动荡和金融市场快速变化的背景下,梁培强的投资教育计划不仅仅是一套课程,它是对传统投资理念的深度挑战和革新。梁培强,拥有超过二十年金融行业经验的资深分析师,正在引领一场投资者教育的变革,旨在培养…

基于深度学习的文本分类

通过构建更复杂的深度学习模型可以提高分类的准确性,即分别基于TextCNN、TextRNN和TextRCNN三种算法实现中文文本分类。 项目地址:zz-zik/NLP-Application-and-Practice: 本项目将《自然语言处理与应用实战》原书中代码进行了实现,并在此基础…

Oracle的控制文件多路复用,控制文件备份,控制文件手工恢复

一.配置控制文件多路复用 1.查询Oracle的控制文件所在位置 SQL> select name from v$controlfile;NAME -------------------------------------------------------------------------------- /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/fast_recovery_a…

SpringBoot集成七牛云OSS详细介绍

📑前言 本文主要SpringBoot集成七牛云OSS详细介绍的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句&a…

geemap学习笔记012:如何搜索Earth Engine Python脚本

前言 本节主要是介绍如何查询Earth Engine中已经集成好的Python脚本案例。 1 导入库 !pip install geemap #安装geemap库 import ee import geemap2 搜索Earth Engine Python脚本 很简单,只需要一行代码。 geemap.ee_search()使用方法 后记 大家如果有问题需…

进程间通信(管道/消息队列/共享内存/信号量)

目录 一、进程间通信介绍1.1 进程间通信的目的1.2 进程间通信的发展1.3 进程间通信的分类 二、管道2.1 什么是管道?2.2 匿名管道2.3 实现匿名管道通信的代码2.4 用fork来共享管道原理2.5 站在文件描述符角度-深度理解管道2.6 站在内核角度-管道本质2.7 管道读写的规…

2023 年 亚太赛 APMCM (C题)国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 问题一 为了分析中国新能源电动汽车发展的主要因素&#xf…

电线电缆行业生产管理怎么数字化?

行业介绍 随着市场环境的变化和现代生产管理理念的不断更新,电缆的生产模式也在发生转变,批量小,规格多,交期短的新型制造需求逐年上升,所以企业车间管理的重要性越发凸显,作为企业良性运营的关键&#xf…

MySQL--慢查询(一)

1. 查看慢查询日志是否开启 show variables like slow_query%; show variables like slow_query_log; 参数说明: 1、slow_query_log:这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。 2、long_query_time:当SQL语句执行…

汇编-PUSHFD和POPFD标志寄存器值压栈和出栈

PUSHFD指令将32位EFLAGS寄存器内容压入堆栈, 而POPFD指令则将栈顶单元内容弹出到EFLAGS寄存器 格式:

【开源】基于Vue和SpringBoot的学校热点新闻推送系统

项目编号: S 047 ,文末获取源码。 \color{red}{项目编号:S047,文末获取源码。} 项目编号:S047,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 新闻类型模块2.2 新闻档案模块2.3 新…

opencv- CLAHE 有限对比适应性直方图均衡化

CLAHE(Contrast Limited Adaptive Histogram Equalization)是一种对比度有限的自适应直方图均衡化技术,它能够提高图像的对比度而又避免过度增强噪声。 在OpenCV中,cv2.createCLAHE() 函数用于创建CLAHE对象,然后可以…

MYSQL索引使用注意事项

索引使用注意事项: 1.索引列运算 不要在索引列上进行运算操作,否则索引将失效; 2.字符串不加引号 字符串类型使用时,不加引号,否则索引将失效; 3.模糊查询 如果仅仅是尾部模糊匹配,索引将不会失…

P4 C++ 条件与分支(if)

前言 今天我们来看看条件语句,换句话说,也就是 if 语句、if else 和 else if 等等这写语句。 我知道大家基本上已经非常了解 if 语句和所有 C 中的分支语句,但我还是鼓励你们继续看完这一讲,这里可能包含一些新东西。我们还会深入…