python pygame.camera.init() 没有视频捕获

Posted

技术标签:

【中文标题】python pygame.camera.init() 没有视频捕获【英文标题】:python pygame.camera.init() NO vidcapture 【发布时间】:2013-04-28 18:30:21 【问题描述】:

我正在尝试在 pygame 中初始化摄像头模块并显示来自 USB 网络摄像头的视频。这是我的代码:

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

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

cam = pygame.camera.Camera("/dev/video0",(640,480))
cam.start()
image = cam.get_image()

但我得到了这个错误:

Traceback (most recent call last):
  File "C:/Users/Freddie/Desktop/CAMERA/Test1.py", line 7, in <module>
    pygame.camera.init()
  File "C:\Python27\lib\site-packages\pygame\camera.py", line 67, in init
    _camera_vidcapture.init()
  File "C:\Python27\lib\site-packages\pygame\_camera_vidcapture.py", line 21, in init
    import vidcap as vc
ImportError: No module named vidcap

请帮忙!!!我在 Windows 上

【问题讨论】:

... 我们应该说什么?错误很明显:找不到模块vidcap。你安装了吗?你是怎么安装的?如果没有这些信息,我们应该如何告诉您安装有什么问题? 来自 pygame.camera 文档:Pygame currently supports only Linux and v4l2 cameras. pygame.org/docs/ref/camera.html 但是文档可能已经过时了。 【参考方案1】:

我遇到了同样的问题。 “ImportError: No module named vidcap”的错误信息表明python解释器没有找到你机器上的vidcap模块。

所以你最好按照这些步骤。

    从http://videocapture.sourceforge.net/下载vidcap

2.然后将对应版本的dll(VideoCapture-0.9-5\VideoCapture-0.9-5\Python27\DLLs中名为“vidcap.pyd”)复制到“你的python路径”\DLLs\中。

3.重启你的脚本。

完成!。

【讨论】:

【参考方案2】:

摄像头模组只能在linux上使用

【讨论】:

【参考方案3】:

我遇到了同样的问题,但我发现它不包含在 Windows ONLY LINUX 中

【讨论】:

【参考方案4】:

试试这个:

import pygame

import pygame.camera

import time, string


from VideoCapture import Device

from pygame.locals import *

pygame.camera.init()

cam = pygame.camera.Camera(0,(640,480),"RGB")

cam.start()

img = pygame.Surface((640,480))

cam.get_image(img)

pygame.image.save(img, "img2.jpg")

cam.stop()

【讨论】:

【参考方案5】:

pygame.camera 仅在 linux 上受支持:

Pygame 目前仅支持 Linux 和 v4l2 相机。

另一种解决方案是使用OpenCV VideoCapture。为 Python (cv2) 安装 OpenCV(参见 opencv-python)。

打开摄像头进行视频拍摄:

capture = cv2.VideoCapture(0)

抓取一个相机帧:

success, camera_image = capture.read()

使用pygame.image.frombuffer将相机帧转换为pygame.Surface对象:

camera_surf = pygame.image.frombuffer(
              camera_image.tobytes(), camera_image.shape[1::-1], "BGR")

另见Camera and Video


小例子:

import pygame
import cv2

capture = cv2.VideoCapture(0)
success, camera_image = capture.read()

window = pygame.display.set_mode(camera_image.shape[1::-1])
clock = pygame.time.Clock()

run = success
while run:
    clock.tick(60)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    
    success, camera_image = capture.read()
    if success:
        camera_surf = pygame.image.frombuffer(
            camera_image.tobytes(), camera_image.shape[1::-1], "BGR")
    else:
        run = False
    window.blit(camera_surf, (0, 0))
    pygame.display.flip()

pygame.quit()
exit()

【讨论】:

以上是关于python pygame.camera.init() 没有视频捕获的主要内容,如果未能解决你的问题,请参考以下文章

001--python全栈--基础知识--python安装

Python代写,Python作业代写,代写Python,代做Python

Python开发

Python,python,python

Python 介绍

Python学习之认识python