【K210】【图像入门基础】颜色识别——寻找最大色块

前言

为了了解神经网络与深度学习,接触到了k210这个小玩意,先是跑了几个已经训练好的模板发现真的是太神奇了!更是激起了学习视觉这方面的热情,又反过头去学习图像处理的基础部分,发现博客上关于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 = (87, 21, 27, 93, -5, 92)
#蓝色阈值
blue_threshold = (14, 87, -83, 127, -113, -14)

#寻找最大色块函数定义
def find_max(blobs):
    max_size=0
    for blob in blobs:
        if blob[2]*blob[3] > max_size:
            max_blob=blob
            max_size = blob[2]*blob[3]
    return max_blob

while True:
    img=sensor.snapshot()
    blobs = img.find_blobs([blue_threshold],merge=True)#把拍摄的一张图片里满足的色块纳入集合中

    if blobs:
            max_blob = find_max(blobs)#调用函数,返回最大色块

    img.draw_rectangle((max_blob.x(),max_blob.y(),max_blob.w(),max_blob.h()),color=(255,0,0))#用红色框出最大色块
    img.draw_string(max_blob.x(),max_blob.y(), "(x,y) =")
    img.draw_string(max_blob.x()+40,max_blob.y(), str(max_blob.cx()))
    img.draw_string(max_blob.x()+60,max_blob.y(), str(max_blob.cy()))#在框图左上角显示色块的中心坐标
    lcd.display(img)


运行结果

请添加图片描述
注:坐标是从屏幕的左上角开始,x往右增大,y往下增大

  • 17
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值