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



    • mask为全黑图片中有个白色的圆,如下图:0_1697007098970_64b2e709-5aac-4b87-9d1f-70272d0f8cc2-image.png
      在clear中使用该mask,想要达到的效果应该是中间白色圆部分变黑,但实际却得到了些很奇怪的结果,如下图:0_1697007216301_ae296f58-a3d4-41b6-b14d-9ede28729e6b-image.png
      代码如下:

      # Untitled - By: User6151644 - 周三 10月 11 2023
      
      import sensor, image, time
      
      sensor.reset()
      sensor.set_pixformat(sensor.RGB565)
      sensor.set_framesize(sensor.SXGA)
      sensor.skip_frames(time = 2000)
      
      clock = time.clock()
      x=544  
      y=515
      radius1=286
      radius2=350
      mask = sensor.snapshot(copy_to_fb=False)
      mask.clear()
      mask.draw_circle((x,y,radius2),color=(255,255,255),fill=True)
      while(True):
          clock.tick()
          img = sensor.snapshot().clear(mask=mask)
          print(clock.fps())
      

      所用机器是openmv4h7plus



    • 因为sensor.snapshot(copy_to_fb=False)并不会新开一个fb。要用alloc_extra_fb。

      下面的代码是可以用的。

      import sensor, image, time
      
      sensor.reset()
      sensor.set_pixformat(sensor.RGB565)
      sensor.set_framesize(sensor.SXGA)
      sensor.skip_frames(time = 2000)
      
      clock = time.clock()
      x=544  
      y=515
      radius1=286
      radius2=350
      
      mask = sensor.alloc_extra_fb(sensor.width(), sensor.height(), sensor.GRAYSCALE)
      mask.replace(sensor.snapshot().to_grayscale().clear())
      mask.draw_circle((x,y,radius2),color=255,fill=True)
      
      while(True):
          clock.tick()
          img = sensor.snapshot().clear(mask=mask)
          print(clock.fps())
      


    • @kidswong999 好的,那想问问copy_to_fb=False是什么意思?



    • @kidswong999 另外想问下有没有方法做一个白底黑色圆的蒙版的方法?



    • @m1aw蒙版mask使用问题 中说:

      那想问问copy_to_fb=False是什么意思?

      没有这个参数,只是没报错。



    • @m1aw

      import sensor, image, time
      
      sensor.reset()
      sensor.set_pixformat(sensor.RGB565)
      sensor.set_framesize(sensor.SXGA)
      sensor.skip_frames(time = 2000)
      
      clock = time.clock()
      x=544  
      y=515
      radius1=286
      radius2=350
      
      mask = sensor.alloc_extra_fb(sensor.width(), sensor.height(), sensor.GRAYSCALE)
      mask.replace(sensor.snapshot().to_grayscale().clear().invert())
      mask.draw_circle((x,y,radius2),color=0,fill=True)
      
      while(True):
          clock.tick()
          img = sensor.snapshot().clear(mask=mask)
          print(clock.fps())