• 免费好用的星瞳AI云服务上线!简单标注,云端训练,支持OpenMV H7和OpenMV H7 Plus。可以替代edge impulse。 https://forum.singtown.com/topic/9519
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 我的openmv运行以下程序 一两秒久会闪白灯卡死 一个h7 一个m4 都是这样 但是别人就能正常运行 求大佬答疑



    • import sensor, image, time, math ,os
      sensor.reset()                      # Reset and initialize the sensor.
      sensor.set_pixformat(sensor.GRAYSCALE) # Set pixel format to RGB565 (or GRAYSCALE)
      sensor.set_framesize(sensor.QQVGA)   # Set frame size to QQVGA (160x120)
      sensor.skip_frames(time = 2000)     # Wait for settings take effect.
      
      
      def find_error():
      
          # 初始化存放各区块方差的list
          stdev_list = []
          # 初始化用于存放目标区块index的list
          index_list = []
      
          # 获取图像,调整畸变
          img = sensor.snapshot().lens_corr(strength = 1.1, zoom = 1.0)
          # 边缘检测(目的是提取不同区域的纹理), 边缘检测的阈值(threshold)由于不同队伍采用的摄像头型号和摆放位置的差异需要自行调整
          img.find_edges(image.EDGE_CANNY, threshold=(80, 120))
          # 横向切分20个区块并计算方差
          for i in range(20):
              region = img.get_statistics(roi=(i*16, 150, 16, 90))
              stdev_list.append(region.stdev())
          # Console控制台查看输出结果
          for i in range(20):
              print('Part' + str(i) + ':', stdev_list[i], end = '')
      

      以下代码有两个版本,第一个版本为原始版本,经过测试;第二个是为了应对明暗变化的场景尝试优化的代码,未经实测
      '''

      # 版本1:
      # # 初始化阈值(通过实地测试得到的方差之间的分界线),即方差值大于"最大值-阈值"的区块都是我们的目标区块
      THRESHOLD = 25
      # # 取最值:
      max_value = max(stdev_list)
      for i in range(20):
          if stdev_list[i] >= (max_value - THRESHOLD):
              index_list.append(i)
      # # 输出中位数,即小车行进的期望方向。作为pid控制的参数,应该约等于steady_state的值?原谅作者控制学的太烂了
      output = math.floor(index_list[math.floor(len(index_list)/2)])-10
      print("Output of median is {}".format(output))
      return (output)
      
      
      ![0_1654824666452_Edge.py - OpenMV IDE 2022_6_10 9_29_02.png](https://fcdn.singtown.com/c628293c-a5b7-4fb3-a4a7-e905105d3626.png)


    • 你这个代码不对,格式不对,而且不全,连死循环都没有。

      我没办法运行。