星瞳实验室APP,快速收到回复
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 做人脸识别和分辨不同人脸例程时,识别成功后在人脸框上显示对应人员编号要怎么加代码,加在哪里?



    • import sensor, time, image, pyb
      
      import lcd
      
      
      RED_LED_PIN = 1
      
      GREEN_LED_PIN = 2
      
      
      
      sensor.reset() # Initialize the camera sensor.
      
      sensor.set_pixformat(sensor.GRAYSCALE) # or sensor.GRAYSCALE
      
      sensor.set_framesize(sensor.B128X128) # or sensor.QQVGA (or others)
      
      sensor.set_windowing((92,112))
      
      lcd.init() # Initialize the lcd screen.
      
      #lcd初始化
      
      
      
      
      
      face_cascade = image.HaarCascade("frontalface", stages=25)
      
      
      
      
      #SUB = "s1"
      
      NUM_SUBJECTS = 1 #图像库中不同人数,一共2人
      
      NUM_SUBJECTS_IMGS = 20 #每人有20张样本图片
      
      
      
      # 拍摄当前人脸。
      while (True):
          lcd.display(sensor.snapshot().histeq()) # Take a picture and display the image.
      
      #将图像显示在lcd中
          img = sensor.snapshot().histeq()
          img.median(0, percentile=0.5)
          objects = img.find_features(face_cascade, threshold=0.75, scale=1.35)
      #img = image.Image("face/%s/1.pgm"%(SUB))
          if not objects:
              pyb.LED(GREEN_LED_PIN).off()
              pyb.LED(RED_LED_PIN).on()
              print("没有检测到人脸")
      
          for r in objects:
      
              img.draw_rectangle(r)
      
          img = sensor.snapshot().histeq()
          img.median(0, percentile=0.5)
          d0 = img.find_lbp((0, 0, img.width(), img.height()))
      
      #d0为当前人脸的lbp特征
      
          img = None
      
          pmin = 999999
      
          num=0
      
      
      
          def min(pmin, a, s):
      
              global num
      
              if a<pmin:
      
                  pmin=a
      
                  num=s
      
              return pmin
      
      
      
          for s in range(1, NUM_SUBJECTS+1):
      
              dist = 0
      
              for i in range(2, NUM_SUBJECTS_IMGS+1):
      
                  img = image.Image("face/s%d/%d.pgm"%(s, i))
      
                  d1 = img.find_lbp((0, 0, img.width(), img.height()))
      
              #d1为第s文件夹中的第i张图片的lbp特征
      
                  dist += image.match_descriptor(d0, d1)#计算d0 d1即样本图像与被检测人脸的特征差异度。
      
         # print("Average dist for subject %d: %d"%(s, dist/NUM_SUBJECTS_IMGS))
      
              pmin = min(pmin, dist/NUM_SUBJECTS_IMGS, s)#特征差异度越小,被检测人脸与此样本更相似更匹配。
      
         # print(pmin)
              for r in objects:
                  if pmin < 7000:
                     pyb.LED(GREEN_LED_PIN).on()
                     print(num)
                  else:
                     pyb.LED(GREEN_LED_PIN).off()
                     pyb.LED(RED_LED_PIN).on()
                     print("识别失败")
      
      




    • 不会加啊☹ 不知道该加在哪里,帮忙看看吧



    • @kidswong999看过写字例程还是不会加啊☹ 不知道该怎么加,加在哪里,帮忙看看吧



    • 你这个解决了吗 我也想加不会弄 能不能请教一下