如何将摄像头作为pygame的屏幕?

问题描述 投票:0回答:1

我想把摄像头的图像调成pygame的画面,我用的是OS X,我知道pygame目前只支持Linux和v4l2的摄像头,但是,那我们怎么才能把摄像头和pygame一起使用呢?

python opencv pygame webcam
1个回答
0
投票
import cv2
import pygame
import numpy as np

pygame.init()
pygame.display.set_caption("OpenCV camera stream on Pygame")
surface = pygame.display.set_mode([1280,720])
#0 Is the built in camera
cap = cv2.VideoCapture(0)
#Gets fps of your camera
fps = cap.get(cv2.CAP_PROP_FPS)
print("fps:", fps)
#If your camera can achieve 60 fps
#Else just have this be 1-30 fps
cap.set(cv2.CAP_PROP_FPS, 60)

while True:
    surface.fill([0,0,0])

    success, frame = cap.read()
    if not success:
        break

    #for some reasons the frames appeared inverted
    frame = np.fliplr(frame)
    frame = np.rot90(frame)

    # The video uses BGR colors and PyGame needs RGB
    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

    surf = pygame.surfarray.make_surface(frame)

    for event in pygame.event.get():
        if event.type == pygame.KEYUP:
            background_color = red
            surface.fill(background_color)
            pygame.display.update
            end_time = self.time()

    # Show the PyGame surface!
    surface.blit(surf, (0,0))
    pygame.display.flip()
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.