pygame.camera.Camera.start()正在创建无关的缓冲窗口

时间:2020-02-11 00:17:08

标签: python pygame

在具有摄像头模块的Raspberry Pi上。我从相机OK处抓取输出并将其发条到一个表面,这很好。问题是,当我在相机上调用start()时,它正在使用相机的内容在屏幕上创建一个小的无边界额外窗口。我一直没能看到任何地方要求不要发生这种情况,而且start()似乎非常重要。该代码是非常令人兴奋的。如何隐藏或禁用此缓冲区?

import pygame
import pygame.camera
from pygame.locals import *
import time

pygame.init()
pygame.camera.init()


size1=(1920,1080)
size2=(640,480)
cam = pygame.camera.Camera("/dev/video0",size2)
cam.start()
display = pygame.display.set_mode(size2, 0)
snapshot = pygame.surface.Surface(size2, 0, display)
while True:
  snapshot = cam.get_image(snapshot)
  display.blit(snapshot,(0,0))
  pygame.display.flip()
  time.sleep(10)

它实际上使我困惑了一段时间,因为我错过了flip(),而且我以为我只是以小尺寸获得带有黑色边框的图像。这是使用X而不是在裸机上运行的。

作为奖励,即使较小的缓冲区窗口中的get_image()图像看起来与真实颜色非常接近(我尝试过请求RGB,但它是完全一样的),但是get_image()图像的颜色质量却很奇怪。 >

其他信息:进入VNC后,此缓冲区未在VNC客户端中显示,因此似乎与帧缓冲区有关吗?

1 个答案:

答案 0 :(得分:0)

我尝试了一次全面升级,但Pi无法启动,因此我抢救了文件并重新安装。现在工作正常。没有额外的窗口,颜色也不错。我不确定根本原因是什么,但现在就考虑做。