蒙版mask使用问题
-
mask为全黑图片中有个白色的圆,如下图:
在clear中使用该mask,想要达到的效果应该是中间白色圆部分变黑,但实际却得到了些很奇怪的结果,如下图:
代码如下:# 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 另外想问下有没有方法做一个白底黑色圆的蒙版的方法?
-
-
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())