导航

    • 登录
    • 搜索
    • 版块
    • 产品
    • 教程
    • 论坛
    • 淘宝
    1. 主页
    2. gzs3
    3. 楼层
    G
    • 举报资料
    • 资料
    • 关注
    • 粉丝
    • 屏蔽
    • 帖子
    • 楼层
    • 最佳
    • 群组

    gzs3 发布的帖子

    • RE: 能不能在上一次输出的坐标和这一次输出的坐标来绘画线段

      @kidswong999 大佬,救救孩子

      发布在 OpenMV Cam
      G
      gzs3
    • RE: 能不能在上一次输出的坐标和这一次输出的坐标来绘画线段

      不用筛选,因为我的摄像头是固定的,同一时间只有一个点,也就是我用激光笔照出来的那个点

      发布在 OpenMV Cam
      G
      gzs3
    • RE: 能不能在上一次输出的坐标和这一次输出的坐标来绘画线段

      我要在b[5],b[6]这个坐标的两次输出画线,我应该怎么改能?刚接触代码,纯小白不是很懂怎么改

      #进行帧分差并对差值的像素点进行色块识别,输出它的坐标
      
      import sensor, image, pyb, os, time
      
      TRIGGER_THRESHOLD = 5
      green_threshold   = (15,80)
      
      BG_UPDATE_FRAMES = 50 # 融合前有多少帧。
      BG_UPDATE_BLEND = 128 # How much to blend by... ([0-256]==[0.0-1.0]).
      
      sensor.reset() # 复位并初始化传感器。
      
      sensor.set_pixformat(sensor.GRAYSCALE) # or sensor.RGB565
      #设置图像色彩格式,有RGB565色彩图和GRAYSCALE灰度图两种
      
      sensor.set_framesize(sensor.QVGA) # or sensor.QQVGA (or others)
      #设置图像像素大小
      
      sensor.skip_frames(time = 2000) # 让新的设置生效。
      sensor.set_auto_whitebal(False) # 关闭白平衡。
      clock = time.clock() # 跟踪FPS帧率
      
      # 从主帧缓冲区的RAM中取出以分配第二帧缓冲区。
      # 帧缓冲区中的RAM比MicroPython堆中的RAM多得多。
      # 但是,在执行此操作后,您的某些算法的RAM会少得多......
      # 所以,请注意现在摆脱RAM问题要容易得多。
      # 然而,帧差分不会占用帧缓冲区中的大量额外空间。
      # 但是,如果你这样做,像AprilTags这样的东西会起作用,也可能不会起作用...
      extra_fb = sensor.alloc_extra_fb(sensor.width(), sensor.height(), sensor.RGB565)
      
      print("About to save background image...")
      sensor.skip_frames(time = 20) # 给用户一个时间来准备
      extra_fb.replace(sensor.snapshot())
      print("Saved background image - Now frame differencing!")
      
      triggered = False
      
      frame_count = 0
      while(True):
          clock.tick() # 追踪两个snapshots()之间经过的毫秒数.
          img = sensor.snapshot() # 拍一张照片,返回图像
      
          frame_count += 50
          if (frame_count > BG_UPDATE_FRAMES):
              frame_count = 0
              # 融入新的帧。 我们在这里做256-alpha,因为我们想将新帧混合到背景中。
              # 而不是把背景融入到新帧(这仅仅做alpha)。
              # 通过((NEW*(alpha))+(OLD*(256-alpha)))/256融合每个像素。
              # 因此,低alpha导致新图像的低混合,而高alpha导致新图像的高混合。我们需要对此更新进行反转。
              #img.blend(extra_fb, alpha=(256-BG_UPDATE_BLEND))
              extra_fb.replace(img)
      
      
      
          # 用 "abs(NEW-OLD)" 帧差替换图像。
          img.difference(extra_fb)
          blobs = img.find_blobs([green_threshold],meger = True,margin=100)
          if blobs:
              for b in blobs:
                  img.draw_rectangle(b[0:4]) # rect
                  #用矩形标记出目标颜色区域
                  img.draw_cross(b[5], b[6]) # cx, cy
                  #在目标颜色区域的中心画十字形标记
                  print(b[5], b[6])
                  #输出目标物体中心坐标
                  img.draw_line()
                  
                  
                  
      
          #hist = img.get_histogram()
          # 下面的代码通过比较第99百分位值(例如,非离群值最大值与第90百分位值(例如非最大值)来工作。
          # 两个值之间的差异将随着差异图像看起来像素变化而增大。
          #diff = hist.get_percentile(0.99).l_value() - hist.get_percentile(0.90).l_value()
          #triggered = diff > TRIGGER_THRESHOLD
      
          print(clock.fps()) # 注意: 当连接电脑后,OpenMV会变成一半的速度。当不连接电脑,帧率会增加。
      
      发布在 OpenMV Cam
      G
      gzs3
    • 能不能在上一次输出的坐标和这一次输出的坐标来绘画线段

      0_1647509368080_0ab75b57-690c-4bca-b9b3-75ba3ffe443d-image.png

      发布在 OpenMV Cam
      G
      gzs3
    • 能不能在一个静止的画面里,捕捉一个运动的点?

      就是说,我想在一个画面上捕捉一个激光笔的点,可是色块识别的话亮度啥的又不一样,所以能不能识别到光点在动,并把它框起来

      发布在 OpenMV Cam
      G
      gzs3