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