导航

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

    g3kv 发布的帖子

    • RE: 代码错误的原因

      @kidswong999 是可以运行的,不过它识别色块并检测形状的时候,过一段时间会报错 (如图 ) 或者直接断开与openmv的连接
      0_1544541005879_捕获.JPG

      发布在 OpenMV Cam
      G
      g3kv
    • RE: 代码错误的原因

      Blob Detection Example

      This example shows off how to use the find_blobs function to find color

      blobs in the image. This example in particular looks for dark green objects.

      import sensor, image, time

      import car

      from pid import PID

      from image import SEARCH_EX, SEARCH_DS

      You may need to tweak the above settings for tracking green things...

      Select an area in the Framebuffer to copy the color settings.

      sensor.reset() # Initialize the camera sensor.

      sensor.set_pixformat(sensor.RGB565) # use RGB565.

      sensor.set_framesize(sensor.QQVGA) # use QQVGA for speed.

      sensor.skip_frames(10) # Let new settings take affect.

      sensor.set_auto_whitebal(False) # turn this off.

      clock = time.clock() # Tracks FPS.

      For color tracking to work really well you should ideally be in a very, very,

      very, controlled enviroment where the lighting is constant...

      thresholds = [(82, 100, -31, 13, 37, 127),# 黄色
      (21, 64, 9, 125, -46, -4),#紫色
      (43, 66, 7, 49, 48, 89),#橙色
      (57, 84, -42, -3, -71, -13) #蓝色

                ]
      

      size_threshold = 2000

      x_pid = PID(p=0.5, i=1, imax=100)

      h_pid = PID(p=0.05, i=0.1, imax=50)

      def find_max(blobs):

      max_size=0
      
      for blob in blobs:
      
          if blob[2]*blob[3] > max_size:
      
              max_blob=blob
      
              max_size = blob[2]*blob[3]
      
      return max_blob
      

      while(True):

      clock.tick() # Track elapsed milliseconds between snapshots().
      
      img = sensor.snapshot() # Take a picture and return the image.
      
      blobs = img.find_blobs(thresholds)
      
      if blobs:
                  
                  max_blob = find_max(blobs)
                  
                  x_error = max_blob[5]-img.width()/2
                  
                  h_error = max_blob[2]*max_blob[3]-size_threshold
                  
                  #print("x error: ", x_error)
                  
                  img.draw_rectangle(max_blob[0:4]) # rect
                  
                  img.draw_cross(max_blob[5], max_blob[6]) # cx, cy
                  
                  a=(max_blob[0],max_blob[1],max_blob[2],max_blob[3])
                  
                  print(a)
      
                  for r in img.find_rects(roi=a,threshold = 10000):
                  
                      img.draw_rectangle(r.rect(), color = (255, 0, 0))
                      
                      for p in r.corners(): img.draw_circle(p[0], p[1], 5, color = (0, 255, 0))
                  
                  #x_output=x_pid.get_pid(x_error,1)
                  
                  #h_output=h_pid.get_pid(h_error,1)
                  
                  #print("h_output",h_output)
                  
                  #car.run(-h_output-x_output,-h_output+x_output)
                  
      
      
      else:
      
          car.run(10,-10)
      发布在 OpenMV Cam
      G
      g3kv
    • 代码错误的原因
                  a=(max_blob[0],max_blob[1],max_blob[2],max_blob[3])
                  
                  print(a)
      
                  for r in img.find_rects(roi=a,threshold = 10000):
                  
                      img.draw_rectangle(r.rect(), color = (255, 0, 0))
                      
                      for p in r.corners(): img.draw_circle(p[0], p[1], 5, color = (0, 255, 0))
      
      
      颜色识别后进行矩形识别,可以执行但一段时间显示memoryerror的错误提示,而且断开Openmv和电脑的连接,这是为什么?
      
      发布在 OpenMV Cam
      G
      g3kv