2011-12-11 62 views
2

私はpygameを通してビデオを表示するために私のウェブカメラを取得しようとしています。ここでは、コードです:私はこれをしようとすると、私はscreen.blit(画像、(0、0))一部python pygame blit。表示する画像を取得する

Traceback (most recent call last): 
    File "C:\Python32\src\webcam.py", line 28, in <module> 
    screen.blit(image, (0, 0)) 
TypeError: argument 1 must be pygame.Surface, not None 

からエラーが出ます

# import the relevant libraries 
import time 
import pygame 
import pygame.camera 
from pygame.locals import * 
# this is where one sets how long the script 
# sleeps for, between frames.sleeptime__in_seconds = 0.05 
# initialise the display window 
pygame.init() 
pygame.camera.init() 

screen = pygame.display.set_mode((640, 480), 0, 32) 

# set up a camera object 
cam = pygame.camera.Camera(0) 
# start the camera 
cam.start() 

while 1: 

    # sleep between every frame 
    time.sleep(10) 
    # fetch the camera image 
    image = cam.get_image() 
    # blank out the screen 
    screen.fill((0,0,2)) 
    # copy the camera image to the screen 
    screen.blit(image, (0, 0)) 
    # update the screen to show the latest screen image 
    pygame.display.update() 

私はしませんでしたので、それだと仮定しますイメージをpygameで動くものに変換するが、わからない。

ご協力いただければ幸いです。ありがとうございます。

-Alex

OKので、ここで新しいコードです: それは現在のフォルダに画像を保存しますので、この1作品。なぜ最後の1つの仕事を考え出した。 = \

# import the relevant libraries 
import time 
import pygame 
import pygame.camera 
from pygame.locals import * 
# this is where one sets how long the script 
# sleeps for, between frames.sleeptime__in_seconds = 0.05 
# initialise the display window 
pygame.init() 
pygame.camera.init() 
# set up a camera object 
size = (640,480) 
screen = pygame.display.set_mode(size,0) 


surface = pygame.surface.Surface(size,0,screen) 

cam = pygame.camera.Camera(0,size) 
# start the camera 
cam.start() 

while 1: 

    # sleep between every frame 
    time.sleep(10) 
    # fetch the camera image 
    pic = cam.get_image(surface) 
    # blank out the screen 
    #screen.fill((0,0,0)) 
    # copy the camera image to the screen 
    screen.blit(pic,(0,0)) 
    # update the screen to show the latest screen image 
    p=("outimage.jpg") 

    pygame.image.save(surface,p) 
    pygame.display.update() 
+0

'' 'cam.get_image()' ''が '' '' '' ''を返しています。 – FakeRainBrigand

+0

エラーは、imageがNoneであり、間違った形式の有効なイメージではないことを意味します。明らかに何らかの理由でcam.get_image()が失敗しました。 – Dave

答えて

1

このようなカメラを作成してみてください。それはpygameのドキュメントのthis pageに行うの方法です

cam = pygame.camera.Camera(camlist[0],(640,480)) 

pygame.cameraためAPI pageを見てみると


、私は役立つかもしれない二つのことを発見しました。まず、

現在、PygameはLinuxおよびv4l2カメラのみをサポートしています。

実験:このゲームは、後のパイゲーム のリリースで変更されるか消えます。これを使用すると、次のPygameリリースの でコードが破損する可能性が非常に高くなります。

なぜこれが驚くほどうまくいかないのか不思議に思ってください。

さらに詳しいビートノートでは、camera.get_raw()に電話して結果をプリントすることができます。生の画像データを含む文字列でなければなりません。空文字列None、または何かの意味のないテキストがある場合は、ここでその情報を共有してください。あなたがカメラから何かを取得しているかどうかを確認します。

カメラからのイメージを、カメラのネイティブピクセル形式の文字列として取得します。他のライブラリとの統合に役立ちます。

+0

カメラによっては、画像の解像度を調整する必要があります。 – FakeRainBrigand

+0

私のカメラはそんなに見つからない。そういうわけで私はそれを他の方法で行い、その部分はうまく動作します。画像を画面上に置かなければならない部分だけが機能しません – Avovk

+0

どちらの方法でも、 '' 'get_image'''は黙って失敗します。その前に何かが働いていない。 – FakeRainBrigand

関連する問題