pygame.camera可以在同一时间使用多少台摄像机?
我尝试使用3个网络摄像头,但程序不起作用!当我使用一个或两个网络摄像头时 - 没关系。 = \
有我的代码:
# import the relevant libraries
import time
import sys
import pygame
import pygame.camera
from pygame.locals import *
from pygame.tests.base_test import pygame_quit
pygame.init()
s_width = 645
s_height = 600
width = 640
height = 480
class detectCameras(object):
def __init__(self):
pygame.camera.init()
class webCamera(object):
def __init__(self,cam_number,cam_resolution=[640,480],color_mode="RGB"):
self.cam_number = cam_number
self.cam_resolution = cam_resolution
self.color_mode = color_mode
self.cam = pygame.camera.Camera(self.cam_number,self.cam_resolution,self.color_mode)
def start(self):
self.cam.start()
def stop(self):
self.cam.stop()
def get_b(self):
return self.cam.get_buffer()
def get_image(self, new_width = 320, new_height = 240):
self.img = self.cam.get_image()
self.new_width = new_width
self.new_height = new_height
self.img = pygame.transform.scale(self.img, (self.new_width,self.new_height))
return self.img
screen = pygame.display.set_mode([s_width,s_height])
# set window title
pygame.display.set_caption("OMS CCTV")
# set icon
pygame.display.set_icon(pygame.image.load('icon.png').convert_alpha())
#detectCameras()
pygame.camera.init()
# set up a camera object
cam_on = webCamera(1) #pygame.camera.Camera(1,[width,height],"RGB")
cam_tw = webCamera(2)
cam_tr = webCamera(3)
# start the camera
cam_on.start()
cam_tw.start()
cam_tr.start()
#
mainloop = 1
while mainloop:
for event in pygame.event.get():
if event.type == pygame.QUIT:
mainloop = 0
pygame.quit()
sys.exit("Exit")
elif event.type == pygame.K_ESCAPE:
mainloop = 0
pygame.quit()
sys.exit("Exit")
# sleep between every frame
time.sleep( 0.05 )
screen.fill([0,0,0])
image_on = cam_on.get_image()
screen.blit( image_on, ( 0, 0 ) )
image_tw = cam_tw.get_image()
screen.blit( image_tw, ( 325, 0 ) )
image_tr = cam_tr.get_image()
screen.blit( image_tr, ( 0, 245 ) )
pygame.display.update()
我不知道为什么它不起作用!
答案 0 :(得分:2)
来自pygame.camera
的{{1}}:
实验!:这个api可能会在以后的
pygame
版本中发生变化或消失。如果您使用此代码,您的代码很可能会破坏下一个pygame
版本。
我认为你不能依赖它支持任何特定数量的相机;也许两个是最好的。
答案 1 :(得分:1)
我遇到了同样的问题。不幸的是,USB2主机控制器只能处理2个未压缩的640x480流的带宽。如果你想使用更多的摄像头,你必须确保计算机中有多个主机控制器,并且最多只能插入2个。
您还可以降低从相机请求的分辨率。