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



    • 下面的代码报错:MemoryError: Out of fast Frame Buffer Stack Memory! Please reduce the resolution of the image you are running this algorithm on to bypass this issue!

      # 颜色二值化滤波例子
      
      #
      
      # 这个脚本展示了二值图像滤波。
      
      # 您可以传递二进制任意的阈值来分割图像。
      
      
      
      import sensor, image, time
      
      sensor.reset()
      
      sensor.set_framesize(sensor.QVGA)
      
      sensor.set_pixformat(sensor.RGB565)
      
      
      #如果是灰度图,则只需设置(min, max)两个数字即可。
      
      red_threshold = (25, 95, 77, 22, -16, 63) # L A B
      
      green_threshold = (0,100,   -128,0,   0,127) # L A B
      
      blue_threshold = (0,100,   -128,127,   -128,0) # L A B
      
      sensor.skip_frames(time = 2000)
      
      clock = time.clock()
      
      
      while(True):
              clock.tick()
              img = sensor.snapshot()
              img.binary([red_threshold])        
              rects = img.find_rects(threshold = 40000)
              circles = img.find_circles(threshold = 5500, x_margin = 10, y_margin = 10, r_margin = 10,r_min = 5, r_max = 100, r_step = 2)
              blobs = img.find_blobs([black],area_threshold=50, pixels_threshold=50)
              if rects:
                  for r in rects:
                      img.draw_rectangle(r.rect(), color = (255, 0, 0))
                      for p in r.corners(): img.draw_circle(p[0], p[1], 5, color = (0, 255, 0))
                      print("find rects")
                  continue
              if circles:
                  for c in circles:
                      img.draw_circle(c.x(), c.y(), c.r(), color = (255, 0, 0))
                      print("find circles")
                  continue
              if blobs:
                  max_blob=find_max(blobs)
                  img.draw_rectangle(max_blob.rect())
                  img.draw_cross(max_blob.cx(),max_blob.cy())
                  k = max_blob.pixels() / max_blob.area()
                  if(k <= 0.6):
                      print("find sanjiao")
                  continue
          
      


    • 使用QQVGA替代QVGA。



    • 嗯嗯 ,解决啦,谢谢