导航

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

    3i5h

    @3i5h

    0
    声望
    4
    楼层
    328
    资料浏览
    0
    粉丝
    1
    关注
    注册时间 最后登录

    3i5h 关注

    3i5h 发布的帖子

    • RE: 出现错误:NameError:local variable referenced before assignment

      @kidswong999 大佬,但是还是有问题

      发布在 OpenMV Cam
      3
      3i5h
    • RE: 出现错误:NameError:local variable referenced before assignment
      import sensor, image, time
      
      
      black_threshold  = (   -15,   25,  -26,   14,   -15,   25)
      white_threshold  = (    45,   86,  -26,   11,   -15,   25)
      
      sensor.reset() # 初始化摄像头传感器
      sensor.set_pixformat(sensor.RGB565) # 使用 RGB565 彩图
      sensor.set_framesize(sensor.QQVGA) # 使用 QQVGA 分辨率
      sensor.skip_frames(10) #跳过几帧,让新的设置生效。
      sensor.set_auto_whitebal(False) # 因为是颜色识别,所以需要把白平衡关闭
      clock = time.clock() # 追踪帧率,影响不大
      #__________________________________________________________________
      #定义寻找最大色块的函数,因为图像中有多个色块,所以追踪最大的那个
      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() # 跟踪快照()之间经过的毫秒数。
      	img = sensor.snapshot().lens_corr(1.8) # 截取一张图片
      	
      	left_roi = (20,20,160,80)
      	blobs = img.find_blobs([black_threshold],roi=left_roi)  #识别黑色阈值
      	if blobs:
              max_blob = find_max(blobs)  #调用上面自定义函数,找到最大色块
              #img.draw_rectangle((max_blob.x(), max_blob.y(), max_blob.w(), max_blob.h()), color = (255, 0, 0), thickness=2)
              max_blob.x()  #返回识别区域左上角的x坐标
              max_blob.y()  #返回识别区域左上角的y坐标
              max_blob.w()  #返回识别区域的宽度
              max_blob.h()  #返回识别区域的长度
              print(max_blob.x(),max_blob.y())
      	'''
      	right_roi = (30,10,90,90)
      	blobs = img.find_blobs([white_threshold],roi=right_roi)  #识别黑色阈值
      	max_blobs = find_max(blobs)  #调用上面自定义函数,找到最大色块
      	#img.draw_rectangle((max_blobs.x(), max_blobs.y(), max_blobs.w(), max_blobs.h()), color = (0, 255, 0), thickness=2)
      	max_blobs.x()  #返回识别区域左上角的x坐标
      	max_blobs.y()  #返回识别区域左上角的y坐标
      	max_blobs.w()  #返回识别区域的宽度
      	max_blobs.h()  #返回识别区域的长度
      '''
      

      但是我又出现这个错误了

      0_1691123721350_4a825460-65b1-4a54-84f3-4eb69265e4d3-image.png

      发布在 OpenMV Cam
      3
      3i5h
    • 出现错误:NameError:local variable referenced before assignment
      import sensor, image, time
      
      
      black_threshold  = (   -15,   25,  -26,   14,   -15,   25)
      white_threshold  = (    45,   86,  -26,   11,   -15,   25)
      
      sensor.reset() # 初始化摄像头传感器
      sensor.set_pixformat(sensor.RGB565) # 使用 RGB565 彩图
      sensor.set_framesize(sensor.QQVGA) # 使用 QQVGA 分辨率
      sensor.skip_frames(10) #跳过几帧,让新的设置生效。
      sensor.set_auto_whitebal(False) # 因为是颜色识别,所以需要把白平衡关闭
      clock = time.clock() # 追踪帧率,影响不大
      #__________________________________________________________________
      #定义寻找最大色块的函数,因为图像中有多个色块,所以追踪最大的那个
      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() # 跟踪快照()之间经过的毫秒数。
      	img = sensor.snapshot().lens_corr(1.8) # 截取一张图片
      	
      	left_roi = (20,20,160,80)
      	blobs = img.find_blobs([black_threshold],roi=left_roi)  #识别黑色阈值
      	max_blob = find_max(blobs)  #调用上面自定义函数,找到最大色块
      	img.draw_rectangle((max_blob.x(), max_blob.y(), max_blob.w(), max_blob.h()), color = (255, 0, 0), thickness=2)
      	max_blob.x()  #返回识别区域左上角的x坐标
      	max_blob.y()  #返回识别区域左上角的y坐标
      	max_blob.w()  #返回识别区域的宽度
      	max_blob.h()  #返回识别区域的长度
      	print(max_blob.x(),max_blob.y())
      	
      	right_roi = (30,10,90,90)
      	blobs = img.find_blobs([white_threshold],roi=right_roi)  #识别黑色阈值
      	max_blobs = find_max(blobs)  #调用上面自定义函数,找到最大色块
      	img.draw_rectangle((max_blobs.x(), max_blobs.y(), max_blobs.w(), max_blobs.h()), color = (0, 255, 0), thickness=2)
      	max_blobs.x()  #返回识别区域左上角的x坐标
      	max_blobs.y()  #返回识别区域左上角的y坐标
      	max_blobs.w()  #返回识别区域的宽度
      	max_blobs.h()  #返回识别区域的长度
      	print(max_blobs.x(),max_blobs.y())
      

      0_1691079164116_5547bb63-7fca-4748-a760-246a333b539a-1691079121445.jpg

      发布在 OpenMV Cam
      3
      3i5h