改变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来修改显示的区域,但是这个问题导致无法观测到图像处理的效果。
下面的照片是正常情况下图像处理的结果。
谢谢!
-
实际运行会发现有滤波的图像一闪而过,但是稳定保留在准缓冲区的只是灰度图
-
sensor.skip_frames(time = 1000)
sensor.set_windowing((150,150))顺序错了,应该改为
sensor.set_windowing((150,150))
sensor.skip_frames(time = 1000)
-
在循环中设置sensor不是推荐的行为,帧率会非常低
-
@kidswong999 改了顺序也是这样,显示的只有原图,处理都是一闪而过
其实我想做的就是能够把图像中的圆所在的小部分roi提取出来然后,对这提取出来的部分做处理,因为我做的是圆的处理,所以是想用logpolar变换来实现,可是logpolar 没办法选择ROI只能全图变换,所以我想把圆所在的部分摘出来作为一张图处理,圆处于图像中心,这样就可以用logpolar展开了。
请问有其他的方法可以实现吗?上周我用copy to fb 一直报错没解决,今天迫不得已就用setwindow了 结果也不容乐观。