k210实例--码的识别

2021-04-243636
AI 快速预览详细 收起
本文介绍了使用K210进行AprilTag和二维码识别的方法。通过具体的代码示例,展示了如何快速检测标志并计算相对位置。文章详细解释了AprilTag的不同家族类型,如TAG16H5和TAG36H11,并提供了相应的代码示例。此外,还介绍了二维码的识别方法。无论你是零基础新手还是有一定经验的开发者,都能从中受益。
Apriltag标签:
AprilTag是一个视觉基准库,在AR,机器人,相机校准领域广泛使用。通过特定的标志(与二维码相似,但是降低了复杂度以满足实时性要求),可以快速地检测标志,并计算相对位置。
相对于二维码,通过AprilTag检测程序可以计算相对于相机的精确3D位置,方向和id。

MaixPy IDE 中在工具-》机器视觉选择中有不同码的生成
种类
AprilTag的种类叫家族(family),有下面的几种:
TAG16H5 → 0 to 29
TAG25H7 → 0 to 241
TAG25H9 → 0 to 34
TAG36H10 → 0 to 2319
TAG36H11 → 0 to 586
ARTOOLKIT → 0 to 511
代码:
  1. import sensor, image, time, math,lcd
  2. sensor.reset()
  3. sensor.set_pixformat(sensor.RGB565)
  4. sensor.set_framesize(sensor.QQVGA)
  5. sensor.skip_frames(30)
  6. sensor.set_auto_gain(False)
  7. sensor.set_auto_whitebal(False)
  8. clock = time.clock()
  9. lcd.init()
  10. while(True):
  11.       clock.tick()
  12.       lcd.rotation(2)
  13.       img = sensor.snapshot()
  14.       for tag in img.find_apriltags(families=image.TAG16H5):
  15.            img.draw_rectangle(tag.rect(), color = (255, 0, 0))
  16.            img.draw_cross(tag.cx(), tag.cy(), color = (0, 255, 0))
  17.            degress = 180 * tag.rotation() / math.pi
  18.            print(tag.id(),degress)
  19.            a=img.draw_string(0, 0, "id:%d"%(tag.id()), color=(0,0,0), scale=2)
  20.            lcd.display(a)
  21.     lcd.display(img)
复制代码
注意:img.find_apriltags()函数默认的是TAG36H11,可以在函数里添加families=image.XXXXXXX来识别自己需要的Apriltag标签
二维码:
二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。
  1. import sensor
  2. import machine
  3. import image
  4. sensor.reset()
  5. sensor.set_pixformat(sensor.RGB565)
  6. sensor.set_framesize(sensor.QVGA)
  7. sensor.run(1)
  8. sensor.skip_frames(10)
  9. sensor.set_hmirror(0)
  10. while True:
  11.     img = sensor.snapshot()
  12.     code = img.find_qrcodes([0,0,320,240])
  13.     for i in code:
  14.          code_text = i.payload()
  15.          print(code_text)
复制代码



AprilTag.py

883 Bytes, 下载次数: 3468

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -