备战电赛之K210篇《第二天》

今天搞颜色识别,跟着b站的小黑学的:
展示学习成果————————

   

import image
import lcd
import time
import sensor
import lcd, image


lcd.init()
lcd.init(freq = 15000000)
sensor.reset()
lcd.init(type=2)
lcd.rotation(2)
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)#分辨率
sensor.set_auto_gain(False)#自动增益
sensor.set_auto_whitebal(False)#白平衡

sensor.run(1)
Range = (0,0,160,120)

for i in range(200):
   img=sensor.snapshot()
   img.draw_rectangle((150,100,30,30),color=(255,255,255))#圈出搜寻区域
   Statistics = img.get_statistics(roi=(200,100,30,30)) #得到统计信息
   Threshold = [Statistics.l_min(),Statistics.l_max(),
                Statistics.a_min(),Statistics.a_max(),
                Statistics.b_min(),Statistics.b_max(),]#lab
   print(Threshold)

while True:
    img=sensor.snapshot()
       #找色块
    for blob in                 img.find_blobs([Threshold],roi=Range,pixels_threshold=100,area_threshold=100,merge=True,m    argin=10):
       img.draw_rectangle(blob.rect())#画框
       img.draw_cross(blob.cx(),blob.cy())#十字
       print(blob.cx(),blob.cy())

这个是自动识别物LAB取值,然后自动找。

下来实现手动:

import image
import lcd
import time
import sensor
import lcd, image
lcd.init()
lcd.init(freq = 15000000)
sensor.reset()
lcd.init(type=2)
lcd.rotation(2)
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)#分辨率
sensor.set_auto_gain(False)#自动增益
sensor.set_auto_whitebal(False)#白平衡

sensor.run(1)
Range = (0,0,160,120)

#for i in range(200):
   #img=sensor.snapshot()
   #img.draw_rectangle((150,100,30,30),color=(255,255,255))#圈出搜寻区域
   #Statistics = img.get_statistics(roi=(200,100,30,30)) #得到统计信息
   #Threshold = [Statistics.l_min(),Statistics.l_max(),
                #Statistics.a_min(),Statistics.a_max(),
                #Statistics.b_min(),Statistics.b_max(),]
   #print(Threshold)

while True:
    img=sensor.snapshot()
       #找色块
    for blob in img.find_blobs([(21, 31, 15, 35, 14, -3)],roi=Range,pixels_threshold=100,area_threshold=100,merge=True,margin=10):
       img.draw_rectangle(blob.rect())#画框
       img.draw_cross(blob.cx(),blob.cy())#十字
       print(blob.cx(),blob.cy())

以上是颜色识别。


串口K210——明天实现

data = bytearray([0xa3,0xb3,obj.classid()+1, pos[0],pos[1],0xc3])#帧头+帧头+数字+坐标x+坐标y+帧尾
usart3.write(data)


这里记一下我感觉很重要的一个函数(img.find_blobs)

img.find_blobs(
[(21, 31, 15, 35, 14, -3)], #识别颜色
roi=Range,                  #想要识别区域
pixels_threshold=100,       #(面积阈值)判断大小
area_threshold=100,         #(像素个数阈值)判断大小
merge=True,                 #默认为False,如果merge=True,那么识别到的所有色块将会合并成一个大色块
margin=10):                 #10个像素之间如果有没有被识别的,将会被合并为识别的


#目标像素个数低于100个的忽略,被框选面积小于100也被忽略

害学习之路,王者荣耀为绊脚石。 

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值