在屏幕上显示PyGame Mask

时间:2014-04-14 23:11:43

标签: python pygame mask pygame-surface

我正在开展一些机器人视觉项目,我需要通过颜色进行一些物体识别。我目前正在为此目的使用面具。到目前为止一切顺利,但现在我需要调整某些设置,我想实际看到这些更改如何影响最终结果。

我的第一个想法是,'很好,在屏幕上打印面具',所以我试图将面具当作表面处理,但事实证明,PyGame面具不能对屏幕表面造成'blit':

TypeError: argument 1 must be pygame.Surface, not pygame.mask.Mask

我目前正在使用PyGame.mask操作并猜测掩码的外观,但我认为在屏幕上显示当前掩码非常有用。我认为如果我可以将蒙版应用到表面并看到实际被识别的内容但是蒙版的黑/白表示就足够了可能会更好。我阅读了文档,但无法弄清楚如何继续。

此外,我试图显示的掩码是由pygame.mask.from_threshold

生成的

有关如何执行此操作的任何线索?

1 个答案:

答案 0 :(得分:2)

我也一直在研究这个问题,在我看来差距很小。我无论如何都找不到一个pygame.mask对象和blit返回到表面。

我发现'人'倾向于获得mask.outline()然后绘制点。

画出面具的轮廓,例如:

olist = myImage_mask.outline()
pygame.draw.lines(blankSurf,(200,150,150),1,olist)

或填充面具的轮廓,例如:

olist = myImage_mask.outline()
pygame.draw.polygon(blankSurf,(200,150,150),olist,0)