python - pygame.camera.Camera.start() 正在创建无关的缓冲区窗口
问题描述
在带有摄像头模块的 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)
它实际上让我困惑了一段时间,因为我错过了翻转(),我以为我只是得到一个带有黑色边框的小尺寸图像。这是与 X 一起运行的,而不是在裸控制台上运行的。
作为奖励,get_image() 图像具有奇怪的颜色质量,即使小缓冲区窗口中的图像看起来更接近真实颜色(我尝试过请求 RGB,但它完全相同)。
附加信息:在 VNC 中,此缓冲区未显示在 VNC 客户端中,因此它似乎与帧缓冲区或其他什么有关?
解决方案
我尝试了全面升级,但 Pi 无法启动,所以我挽救了我的文件并进行了全新安装。现在工作正常。没有额外的窗户,颜色很好。我不确定根本原因是什么,但现在考虑一下。
推荐阅读
- sql - 如何在Oracle中将表行拆分为固定大小的块
- javascript - 如何将箭头功能更改为在 Internet Explorer 中工作的正常功能?
- elasticsearch - Elasticsearch 索引设计 - 自由格式字段、文本与扁平化查询限制和关注点
- android - 再次启动单个顶级目的地时不会调用 onDestinationChanged
- python - 将数字从一个列表移动到另一个列表(解释)
- java - 当用户按下提交按钮时如何保存用户的评分和评论?
- amazon-web-services - AWS sam local 在本地创建基础设施
- javascript - 为什么 Workbox 不使用缓存进行离线使用?
- python - Transform URL appearance and send it by Telegram bot
- javascript - 如何使谷歌日历图表移动响应?