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



    • 请教OPENMV4中图像亮度和对比度如何调整;另外请教我下面的代码哪里有错误,调试不通过,这段代码是想在灰度力图像中找到一个符合要求的黑色色块,再判断该色块的圆弧度,最后判断输出该色块是不是一个黑色的圆形
      # 单色灰度色块跟踪示例
      #
      # 这个例子展示了使用OpenMV Cam的单色灰度跟踪。
      
      import sensor, image, time
      
      # Color Tracking Thresholds (Grayscale Min, Grayscale Max)
      # 下面的灰度阈值设置为只能找到非常明亮的白色区域。
      thresholds = (120, 0)
      
      sensor.reset()
      sensor.set_pixformat(sensor.GRAYSCALE)
      sensor.set_framesize(sensor.VGA)
      sensor.skip_frames(time = 2000)
      sensor.set_auto_gain(True) # must be turned off for color tracking
      sensor.set_auto_whitebal(True) # must be turned off for color tracking
      clock = time.clock()
      
      # 只有比“pixel_threshold”多的像素和多于“area_threshold”的区域才被
      # 下面的“find_blobs”返回。 如果更改相机分辨率,
      # 请更改“pixels_threshold”和“area_threshold”。 “merge = False”合并图像中所有重叠的色块。
      
      while(True):
          clock.tick()
          img = sensor.snapshot()
          for blob in img.find_blobs([thresholds], x_stride=50, y_stride=50, pixels_threshold=9000, area_threshold=9000, merge=False):
      
              for blob in img.find_blobs(blob.roundness() > 0.95):
      
              #img.draw_rectangle(blob.rect())
              #img.draw_cross(blob.cx(), blob.cy())
      
          #print(blob.roundness())
          #print(blob.density())
          #print(clock.fps())
          #print(blob.cx(), blob.cy())
          #print(blob.x_hist_bins())
          #print(blob.x_hist_bins())
      


    • 你这个不是一个问题,我现在说代码的问题。

      缩进必须严格,即使是注释。所以最下面的几行需要删掉。或者改成正确的缩进。
      for下面一行需要内容,不能空着,如果没有需要填写pass。

      你的逻辑根本不对。22行和24行多次调用img.find_blobs。



    • 下面的代码是可以运行的。

      import sensor, image, time
      
      # Color Tracking Thresholds (Grayscale Min, Grayscale Max)
      # 下面的灰度阈值设置为只能找到非常明亮的白色区域。
      thresholds = (120, 0)
      
      sensor.reset()
      sensor.set_pixformat(sensor.GRAYSCALE)
      sensor.set_framesize(sensor.VGA)
      sensor.skip_frames(time = 2000)
      sensor.set_auto_gain(True) # must be turned off for color tracking
      sensor.set_auto_whitebal(True) # must be turned off for color tracking
      clock = time.clock()
      
      # 只有比“pixel_threshold”多的像素和多于“area_threshold”的区域才被
      # 下面的“find_blobs”返回。 如果更改相机分辨率,
      # 请更改“pixels_threshold”和“area_threshold”。 “merge = False”合并图像中所有重叠的色块。
      
      while(True):
          clock.tick()
          img = sensor.snapshot()
          for blob in img.find_blobs([thresholds], x_stride=50, y_stride=50, pixels_threshold=9000, area_threshold=9000, merge=False):
              if (blob.roundness() > 0.95):
                  print("found")
      
      


    • 每一个新的提问,单独发一个新帖子