拼图识别

思路:

H题的关键点是识别不同拼图的位置和角度,识别到之后机械臂就可以抓取拼图,并把它摆放到正确的位置。

  • 拼图中间的圆圈是拼图的位置(质心坐标)。
  • 圆圈上的斜线是拼图的角度。
  • 画面左上方的数字是拼图的面积(blob.pixels),可以通过面积来区分不同拼图的 id。因为面积和拍摄距离相关,每个人摆放和拍摄的距离都不一样,所以这里没有写 if 判断来具体区分是哪一块拼图,实际使用时需要根据自己的距离,把不同拼图的面积区间对应到各自的 id。
import csi
import time
import math
import image

# 改变这里的颜色阈值
thresholds = (100, 255)

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.VGA)  # OpenMV Cam H7 改用 QVGA
csi0.snapshot(time=2000)
csi0.auto_exposure(False, exposure_us=20)
csi0.auto_gain(False, gain_db=10)
csi0.auto_whitebal(False)
clock = time.clock()


# 计算拼图的弧度
def rotation_360(blob):
    theta = blob.rotation                    # 属性,弧度 0~pi
    c = image.get_enclosing_circle(blob)     # 具名元组: c.x, c.y, c.r
    dx = blob.cxf - c.x                      # 质心偏向"重"的一端
    dy = blob.cyf - c.y
    heading = math.atan2(dy, dx)
    # 在 theta 和 theta+pi 中选与 heading 夹角小的那个
    diff = (heading - theta + math.pi) % (2 * math.pi) - math.pi
    if abs(diff) > math.pi / 2:
        theta += math.pi
    return theta % (2 * math.pi)             # 0 ~ 2*pi


while True:
    clock.tick()
    img = csi0.snapshot()
    for blob in img.find_blobs(
        [thresholds], pixels_threshold=100, area_threshold=100, merge=False
    ):
        # rotation是拼图的角度
        # 使用面积blob.pixels来区分不同的拼块
        rotation = math.degrees(rotation_360(blob))
        print(rotation, blob.pixels)
        img.draw_keypoints(
            [(blob.cx, blob.cy, int(rotation))],
            size=40,
            color=0,
        )
        img.draw_string((int(blob.x), int(blob.y)), str(blob.pixels), color=120)
    # print(clock.fps())


600倍AI算力提升,480+FPS彩色全局快门,120+FPS YOLO目标检测,200+FPS FOMO目标检测!

星瞳科技2026最新款OpenMV N6高性能AI智能图像识别摄像头正式开售啦!

快来了解详情~:

淘宝 星瞳科技OpenMV品牌店https://item.taobao.com/item.htm?ft=t&id=1029138529714

天猫 OpenMV旗舰店https://detail.tmall.com/item.htm?id=1028359546575

京东 星瞳旗舰店: https://item.jd.com/10212563443894.html

  • 支持AI大模型及Agent协同;

  • 标配480FPS百万像素彩色全局快门,可拍摄识别超高速运动物体;

  • 120+FPS YOLO目标检测,高速运行复杂AI算法,支持语音识别;

  • 内置WiFi、蓝牙5.1、以太网、麦克风、IMU;

  • 内置H264和JPEG编码硬件加速,支持MP4录像及网络推流;

  • 配套官方机械臂、无人机、智能车、云台等套件,还有竞赛支持,一键复制代码运行!


results matching ""

    No results matching ""