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



    • 想用VGA格式读一幅图像,但是内存不够,所以想把一幅图片分开扫描,但遇到很多问题,求指教

      yellow_threshold   = (   70,   80,  10,   25,   30,   60)
      
      from pyb import UART
      from pyb import Timer
      ROI1=(90,0,230,400)
      ROI2=(90,400,230,80)
      ROI3=(320,0,110,460)
      ROIS=[ROI1,ROI2,ROI3]
      def saomiao():
          while(True):
              for ROI in ROIS:
                  pyb.delay(1000)
                  sensor.reset()
                  #sensor.skip_frames(10)
                  return ROI
                  
              
      
      sensor.reset() # 初始化摄像头
      sensor.set_pixformat(sensor.RGB565) # 格式为 RGB565.
      sensor.set_framesize(sensor.VGA)
      sensor.set_windowing(saomiao())
      sensor.skip_frames(1000) 
      sensor.set_auto_whitebal(False)# Create a clock object to track the FPS.
      clock = time.clock()
      uart = UART(3, 9600)
      #start = pyb.millis()
      while(True):     
          image = sensor.snapshot()         # Take a picture and return the image.
          img = image.lens_corr(strength=1.8)
          blobs = img.find_blobs([yellow_threshold])
          #img.draw_rectangle(ROI)    
          if blobs:
           for b in blobs:
              img.draw_rectangle(b[0:4])
              uart.write('CX :')
              uart.write(str(b[5]))
              print('x:',str(b[5]))
              uart.write('CY :')
              uart.write(str(b[6]))
              print('y:',str(b[6]))
      
      


    • 如果不在循环里进行初始化的话,saomiao函数只能给set_windows返回第一个值。如果加初始化的话,会出现sensor timeout 的错误。有人知道怎么解决吗?求指教0_1530496783280_1530496742(1).png 0_1530496837599_1530496819(1).png



    • 想问有没有人做过类似的,通过对set_windows()的变量进行不断变换和扫描的工作?



    • 首先,你的代码逻辑不对。
      而且,OpenMV这么用很蛋疼,效果并不好,速度很慢。

      很蛋疼,但是下面的代码可以运行。

      import sensor, image
      
      ROI1=(90,0,230,400)
      ROI2=(90,400,230,80)
      ROI3=(320,0,110,460)
      ROIS=[ROI1,ROI2,ROI3]
      
      yellow_threshold   = (   70,   80,  10,   25,   30,   60)
      
      sensor.reset() # 初始化摄像头
      sensor.set_pixformat(sensor.RGB565) # 格式为 RGB565.
      sensor.set_framesize(sensor.VGA)
      sensor.set_windowing(ROIS[0])
      sensor.set_auto_whitebal(False)# Create a clock object to track the FPS.
      sensor.skip_frames(10)
      
      while(True):
          for r in ROIS:
              sensor.set_windowing(r)
              print(r)
              sensor.skip_frames(10)
              img = sensor.snapshot()         # Take a picture and return the image. 
              blobs = img.find_blobs([yellow_threshold]) 
              if blobs:
               for b in blobs:
                  img.draw_rectangle(b[0:4])
                  print('x:',str(b[5]))
                  print('y:',str(b[6]))
      


    • @kidswong999 嗯嗯,我速度要求不是很高。非常感谢您的帮忙,感谢感谢。