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



    • 为什么openmv不能进行物体距离测量

      import sensor, image, time
      
      # 此处通过识别物体的颜色来测大小
      target_threshold = (91, 65, -15, 33, 89, 47)   # 此处以黄色为例
      
      K = 0.07                                  # 当测另一个物体的大小时,需要将该物体放在求比例系数K时的那个距离处,此处我们使用的是10cm处
      # 实际大小 = 直径的像素 * K。
      # 第一次时,可以将小球放在距离摄像头10cm处的位置,测得Lm的大小之后,K = 实际大小 / Lm
      # 比如在10cm处时,直径的像素为43,小球实际大小为3cm,则K = 3 / 43 = 0.07,具体情况以你的实际情况为准
      
      # 初始化函数
      def init_setup():
          global sensor, clock                  # 设置为全局变量
          sensor.reset()                        # 初始化感光元件
          sensor.set_pixformat(sensor.RGB565)   # 将图像格式设置为彩色
          sensor.set_framesize(sensor.QQVGA)    # 将图像大小设置为160x120
          sensor.skip_frames(10)                # 跳过10帧,使以上设置生效
          sensor.set_auto_whitebal(False)       # 关闭白平衡
          clock = time.clock()                  # 创建时钟对象
      
      # 主函数
      def main():
          while 1:
              clock.tick()                      # 更新FPS帧率时钟
              img = sensor.snapshot()           # 拍一张照片并返回图像
      
              blobs = img.find_blobs([target_threshold])  # 找到图像中的目标区域
              if len(blobs) == 1:
                  b = blobs[0]
                  img.draw_rectangle(b[0:4])    # 将目标区域框出来
                  img.draw_cross(b[5], b[6])    # 在目标中心位置画十字
                  Lm = (b[2]+b[3])/2            # 获取像素点
                  w = K * b[2]                  # 通过比例系数K和像素值得到物体实际宽度
                  h = K * b[3]                  # 通过比例系数K和像素值得到物体实际高度
                  print('物体实际宽度为 %s cm' % w)  # 打印物体实际宽度值
                  print('物体实际高度为 %s cm' % h)  # 打印物体实际高度值
                  #print(Lm)                     # 打印像素点数,在你对一个新的物体进行测大小时,需要将该物体放在求比例系数K时的那个距离处,此处我们使用的是10cm处
              #print(clock.fps())              # 打印帧率,注:实际FPS更高,流FB使它更慢。
      
      # 程序入口
      if __name__ == '__main__':
          init_setup()  # 执行初始化函数
          try:
              main()    # 执行主函数
          except:
              pass
      
      


    • 我运行这个代码没有问题,你要放在黄色物体前面