• OpenMV VSCode 扩展发布了,在插件市场直接搜索OpenMV就可以安装
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 为什么比较复杂的二维码无法识别成功,不是特别方正的二维码也无法识别成功,而且有时候扫描二维码是一片空白,这个该怎么解决



    • import sensor, image, time,image, os, tf, uos, gc
      from pyb import UART
      uart = UART(3, 9600)
      sensor.reset()
      sensor.set_contrast(3)
      sensor.set_gainceiling(16)
      sensor.set_framesize(sensor.VGA)
      sensor.set_pixformat(sensor.GRAYSCALE)
      sensor.set_auto_whitebal(True)
      sensor.set_auto_gain(False)  # 必须关闭此功能,以防止图像冲洗…
      sensor.set_windowing((240, 240))       # Set 240x240 window.
      sensor.skip_frames(time=2000)          # Let the camera adjust.
      net = None
      labels = None
      try:
          # load the model, alloc the model file on the heap if we have at least 64K free after loading
          net = tf.load("trained.tflite", load_to_fb=uos.stat('trained.tflite')[6] > (gc.mem_free() - (64*1024)))
      except Exception as e:
          print(e)
          raise Exception('Failed to load "trained.tflite", did you copy the .tflite and labels.txt file onto the mass-storage device? (' + str(e) + ')')
      
      try:
          labels = [line.rstrip('\n') for line in open("labels.txt")]
      except Exception as e:
          raise Exception('Failed to load "labels.txt", did you copy the .tflite and labels.txt file onto the mass-storage device? (' + str(e) + ')')
      # 加载Haar算子
      # 默认情况下,这将使用所有阶段,更低的satges更快,但不太准确。
      face_cascade = image.HaarCascade("frontalface", stages=25)
      #image.HaarCascade(path, stages=Auto)加载一个haar模型。haar模型是二进制文件,
      #这个模型如果是自定义的,则引号内为模型文件的路径;也可以使用内置的haar模型,
      #比如“frontalface” 人脸模型或者“eye”人眼模型。
      #stages值未传入时使用默认的stages。stages值设置的小一些可以加速匹配,但会降低准确率。
      # FPS clock
      clock = time.clock()
      
      while(True):
          clock.tick()
          img = sensor.snapshot()
          img.lens_corr(1.8) # 1.8的强度参数对于2.8mm镜头来说是不错的。
          objects = img.find_features(face_cascade, threshold=0.75, scale=1.35)
          QR_Code=img.find_qrcodes()
          if objects:
              for r in objects:
                  img.draw_rectangle(r)
              for obj in net.classify(img, min_scale=1.0, scale_mul=0.8, x_overlap=0.5, y_overlap=0.5):
                  img.draw_rectangle(obj.rect())
                  predictions_list = list(zip(labels, obj.output()))
                  radio=predictions_list[1][1]*100
                  print("%s = %.2f%%" % (predictions_list[1][0],radio ))
                  radio=str(radio)
                  uart.write('@'+radio+'\r\n')
          elif QR_Code:
              for code in QR_Code:
                  img.draw_rectangle(code.rect(), color = (255, 0, 0))
                  print(code.payload())
                  uart.write('@'+code.payload()+'\r\n')
          #else:
              #print("-----------error------------")
      

      0_1696943727512_fa223c5b-8e77-4778-9eea-4c17af116e4f-image.png
      0_1696943742799_6301b8ff-463a-4fd1-98de-5997ba3664ca-image.png



    • 并且转换角度之后不能及时调整亮度,先照人的话再照平板就会很亮,这该怎么解决