• 免费好用的星瞳AI云服务上线!简单标注,云端训练,支持OpenMV H7和OpenMV H7 Plus。可以替代edge impulse。 https://forum.singtown.com/topic/9519
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 改变window 会导致图像滤波失效?



    • # Untitled - By: xrj - 周一 8月 6 2018
      
      import sensor, image, time,pyb
      
      sensor.reset()
      sensor.set_pixformat(sensor.GRAYSCALE)
      sensor.set_framesize(sensor.QVGA)
      sensor.skip_frames(time = 2000)
      
      clock = time.clock()
      
      while(True):
          clock.tick()
          img = sensor.snapshot()
          high_threshold = (160, 255)                        #二值化范围
          img.gaussian(1)                                    #模糊滤波
          img.binary([high_threshold])                       #二值化
          img.erode(5)
          
          sensor.skip_frames(time = 1000)
          sensor.set_windowing((320,240))
          img = sensor.snapshot()
          img.gaussian(1)                                    #模糊滤波
          img.binary([high_threshold])                       #二值化
          img.erode(5)
          sensor.skip_frames(time = 1000)
          sensor.set_windowing((240,240))
          img = sensor.snapshot()
          img.gaussian(1)                                    #模糊滤波
          img.binary([high_threshold])                       #二值化
          img.erode(5)
          sensor.skip_frames(time = 1000)
          sensor.set_windowing((240,150))
          img = sensor.snapshot()
          img.gaussian(1)                                    #模糊滤波
          img.binary([high_threshold])                       #二值化
          img.erode(5)
          sensor.skip_frames(time = 1000)
          sensor.set_windowing((150,150))
          img = sensor.snapshot()
          img.gaussian(1)                                    #模糊滤波
          img.binary([high_threshold])                       #二值化
          img.erode(5)
          sensor.skip_frames(time = 1000)
          
      
      
      以上是我对例程的稍作修改,按理来讲这个程序运行的结果是每经过1S图像会减小一个尺寸,同时显示的应该是一个经过处理后的图像,但是实际上显示的只是窗口不断减小的灰度图原图,并没有展现图像滤波处理效果,请问这里面的原因是什么,可以修改吗?我想要在主函数循环结构内部应用set_windowing来修改显示的区域,但是这个问题导致无法观测到图像处理的效果。
      

      2_1533535103549_QQ截图20180806135725.png 1_1533535103548_QQ截图20180806135717.png 0_1533535103548_QQ截图20180806135656.png
      下面的照片是正常情况下图像处理的结果。
      0_1533535137332_QQ截图20180806135751.png

      谢谢!


    • 实际运行会发现有滤波的图像一闪而过,但是稳定保留在准缓冲区的只是灰度图


    • sensor.skip_frames(time = 1000)
      sensor.set_windowing((150,150))

      顺序错了,应该改为

      sensor.set_windowing((150,150))
      sensor.skip_frames(time = 1000)



    • 在循环中设置sensor不是推荐的行为,帧率会非常低



    • @kidswong999 改了顺序也是这样,显示的只有原图,处理都是一闪而过0_1533545190036_QQ截图20180806164620.png
      其实我想做的就是能够把图像中的圆所在的小部分roi提取出来然后,对这提取出来的部分做处理,因为我做的是圆的处理,所以是想用logpolar变换来实现,可是logpolar 没办法选择ROI只能全图变换,所以我想把圆所在的部分摘出来作为一张图处理,圆处于图像中心,这样就可以用logpolar展开了。
      请问有其他的方法可以实现吗?上周我用copy to fb 一直报错没解决,今天迫不得已就用setwindow了😔 结果也不容乐观。0_1533545626663_QQ截图20180806165340.png