• OpenMV VSCode 扩展发布了,在插件市场直接搜索OpenMV就可以安装
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 自己编写的代码找不到路径,但用官方例程可以



    • import pyb
      from	pyb import Pin
      RED_LED_PIN = 1
      c=9
      d=9
      p_in1 = Pin('P7', Pin.IN, Pin.PULL_UP)
      p_in2 = Pin('P8', Pin.IN, Pin.PULL_UP)
      p_in3 = Pin('P9', Pin.IN, Pin.PULL_UP)
      while(1):
          a=p_in1.value()
          b=p_in2.value()
          f=p_in3.value()
          if(a == 0):
              import sensor, time, image, pyb
              from pyb import UART
              uart = UART(3, 115200)
              sensor.reset()
              sensor.set_pixformat(sensor.GRAYSCALE)
              sensor.set_framesize(sensor.B128X128)
              sensor.set_windowing((92,112))
              sensor.skip_frames(10)
              sensor.skip_frames(time = 3000)
              pyb.LED(RED_LED_PIN).on()
              sensor.skip_frames(10)
              sensor.skip_frames(time = 100)
              pyb.LED(RED_LED_PIN).off()
              NUM_SUBJECTS = c
              NUM_SUBJECTS_IMGS = 20
              img = sensor.snapshot()
              d0 = img.find_lbp((0, 0, img.width(), img.height()))
              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("singtown/s%d/%d.pgm"%(s, i))
                      d1 = img.find_lbp((0, 0, img.width(), img.height()))
                      dist += image.match_descriptor(d0, d1)
                  print("Average dist for subject %d: %d"%(s, dist/NUM_SUBJECTS_IMGS))
                  pmin = min(pmin, dist/NUM_SUBJECTS_IMGS, s)
                  print(pmin)
                  if(pmin>7200):
                      num=91
              output_str="[%.0f]" %num
              print(num)
              uart.write(output_str+'\r\n')
          elif(b == 0):
                  import sensor,	 image, pyb
                  c=c-1
                  d=d-1
                  RED_LED_PIN = 1
                  BLUE_LED_PIN = 3
                  sensor.reset()
                  sensor.set_pixformat(sensor.GRAYSCALE)
                  sensor.set_framesize(sensor.B128X128)
                  sensor.set_windowing((92,112))
                  sensor.skip_frames(10)
                  sensor.skip_frames(time = 200)
                  num = d
                  n = 60
                  while(n):
                      pyb.LED(RED_LED_PIN).on()
                      sensor.skip_frames(time = 200)
                      pyb.LED(RED_LED_PIN).off()
                      pyb.LED(BLUE_LED_PIN).on()
                      print(c)
                      print(d)
                      print(n)
                      sensor.snapshot().save("singtown/s%s/%s.pgm" % (num, n) )
                      n -= 1
                      pyb.LED(BLUE_LED_PIN).off()
                      print("Done! Reset the camera to see the saved image.")
          if(f == 0):
              import sensor, image, time
              import math
              from pyb import UART
              uart = UART(3, 115200)
              red_threshold   = (0, 100, -128, 5, -128, -22)
              sensor.reset()
              sensor.set_pixformat(sensor.RGB565)
              sensor.set_framesize(sensor.QQVGA)
              sensor.skip_frames(10)
              sensor.set_auto_whitebal(False)
              clock = time.clock()
              K=2880
              i=0
              g=1
              while(g):
                  i=i+1
                  clock.tick()
                  img2 = sensor.snapshot()
                  blobs = img2.find_blobs([red_threshold])
                  if len(blobs) == 0:
                      length=92
                      output_str="[%.0f]" % (length)
                      print("angle:%.0f")
                      print("distance:%.0f"%length)
                      uart.write(output_str+'\r\n')
                  elif len(blobs) == 1:
                      b = blobs[0]
                      img2.draw_rectangle(b[0:4])
                      img2.draw_cross(b[5], b[6])
                      Lm = (b[2]+b[3])/2
                      length = K/Lm
                  for blob in blobs:
                     t=(blob.cx()-80)
                     a=math.atan(t/66/1.732)*180/3.1415926
                     b = blobs[0]
                     Lm = (b[2]+b[3])/2
                     length = 93
                     output_str="[%.0f,%.0f]" % (length,a)
                     print("angle:%.0f"%a)
                     print("distance:%.0f"%length)
                     uart.write(output_str+'\r\n')
                     g=0
      
      

      1_1690703696991_QQ图片20230730155329.png 0_1690703696989_QQ图片20230730155232.png



    • 那就是你没把这个文件放进去。