• 星瞳实验室APP,快速收到回复。扫描二维码或者点击 https://singtown.com/app/
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 每一个新的提问,单独发一个新帖子
  • 描述一定要详细 描述一定要详细 描述一定要详细
  • 请贴出具体的的目的,就是你要做什么。
  • 请贴出具体的代码,与报错提示
  • 代码一定要让别人可以运行的文本,不要贴图片
  • 光流检测



    • 请问可以用光流检测来做距离控制红绿灯吗?



    • 光流只能知道xy的变化量,不能知道距离信息。



    • 此回复已被删除!


    • @kidswong999 如果不用测出具体的距离呢?只要通过xy的变化量来控制红绿灯的变化就行



    • 这有什么问题吗……



    • @kidswong999 请问用光流检测这个例程怎么改可以实现控制红绿灯的变化呢,就是实现镜头远离图像时红灯亮,镜头靠近时绿灯亮?
      #图像微分光流旋转/缩放测量
      BLOCK_W = 16 # pow2
      BLOCK_H = 16 # pow2
      import sensor, image, time, math
      import sensor
      import time
      import math
      import ide
      #支持64x32, 64x64,128x64,128x128. 32x32 需要对 64x64 image 使用 "img.pool(2, 2)"
      sensor.reset()
      sensor.set_pixformat(sensor.GRAYSCALE)
      sensor.set_framesize(sensor.B128X128)
      sensor.skip_frames(time = 2000)
      clock = time.clock()
      extra_fb = sensor.alloc_extra_fb(sensor.width(), sensor.height(), sensor.GRAYSCALE)
      extra_fb.replace(sensor.snapshot())
      while(True):
      clock.tick()
      img = sensor.snapshot()
      for y in range(0, sensor.height(), BLOCK_H):
      for x in range(0, sensor.width(), BLOCK_W):
      displacement = extra_fb.find_displacement(img, logpolar=True,roi = (x, y, BLOCK_W, BLOCK_H), template_roi = (x, y, BLOCK_W, BLOCK_H))
      if(displacement.response() > 0.1):
      rotation_change = displacement.rotation()
      zoom_amount = 1.0 + displacement.scale()
      pixel_x = x + (BLOCK_W//2) + int(math.sin(rotation_change) * zoom_amount * (BLOCK_W//4))
      pixel_y = y + (BLOCK_H//2) + int(math.cos(rotation_change) * zoom_amount * (BLOCK_H//4))
      img.draw_line((x + BLOCK_W//2, y + BLOCK_H//2, pixel_x, pixel_y),color = 255)
      else:
      img.draw_line((x + BLOCK_W//2, y + BLOCK_H//2, x + BLOCK_W//2, y + BLOCK_H//2),color = 0)
      ide.display(img)
      extra_fb.replace(img)
      print(clock.fps())



    • 都说了不能知道距离信息,没法实现 镜头远离靠近