K210 颜色识别
这部分基本就是例程上的内容,添加了一点注释。关于相关的运用到的函数解释,可以参考K210颜色识别.文章来源地址https://www.toymoban.com/news/detail-530923.html
import sensor,lcd,time
#摄像头初始化
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_vflip(1) #后置模式,所见即所得
#lcd初始化
lcd.init()
clock=time.clock()
# 颜色识别阈值 (L Min, L Max, A Min, A Max, B Min, B Max) LAB模型
# 可以根据工具中的阈值编辑器选取阈值
# L 代表亮度(0-100) A 表示红色到绿色的范围(-128绿 - 128红) B 表示黄色到蓝色的范围(-128蓝 - 128黄)
thresholds = [(30, 100, 15, 127, 15, 127), # 红色阈值
(30, 100, -64, -8, -32, 32), # 绿色阈值
(0, 30, 0, 64, -128, -20)] # 蓝色阈值
while True:
clock.tick()
img=sensor.snapshot()
blobs = img.find_blobs([thresholds[0]]) # 0,1,2分别表示红,绿,蓝色。
if blobs:
for b in blobs:
# 圈出色块
tmp=img.draw_rectangle(b[0:4])
tmp=img.draw_cross(b[5], b[6])
# 打印色块中心点坐标
print("x = %d y = %d", b[5], b[6])
lcd.display(img) #LCD显示图片
#print(clock.fps()) #打印FPS
K210 找出最大色块
import sensor,image,lcd,time
#常用初始化
lcd.init()
sensor.reset() #复位摄像头
sensor.set_pixformat(sensor.RGB565) #设置像素格式 RGB565
sensor.set_framesize(sensor.QVGA) #设置帧尺寸 QVGA (320x240)
sensor.skip_frames(time = 2000) #跳过不稳定画面
#红色阈值
red_threshold = (0, 100, 15, 127, 15, 127)
#寻找最大色块函数定义
def find_max(blobs):
max_size=0
for blob in blobs:
if blob[4] > max_size:
max_blob=blob
max_size = blob[4]
return max_blob
while True:
img=sensor.snapshot()
blobs = img.find_blobs([red_threshold],merge=True)
if blobs:
max_blob = find_max(blobs)#调用函数,返回最大色块
# 圈出最大色块,标记中心位置,写明中心坐标
img.draw_rectangle(max_blob[0:4], color=(0,0,0)) #用黑色框出最大色块
img.draw_cross(max_blob[5], max_blob[6])
img.draw_string(max_blob.x(),max_blob.y(), (str(max_blob.cx())+','+str(max_blob.cy())), color = (0,0,0))
print("x = %d y = %d", max_blob[5], max_blob[6])
lcd.display(img)
文章来源:https://www.toymoban.com/news/detail-530923.html
到了这里,关于智能送药小车(一)——K210巡线的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!