Berco Beute wrote: > I've been trying to access my webcam using Python, but I failed > miserably. The camera works fine under Ubuntu (using camora and > skype), but I am unable to get WebCamSpy or libfg to access my webcam. > > First I tried webcamspy (http://webcamspy.sourceforge.net/). That > requires pySerial and pyParallel, and optionally pyI2C. Runing > WebCamSpy results in: > > Exception exceptions.AttributeError: "Parallel instance has no > attribute '_fd'" in <bound method Parallel.__del__ of > <parallel.parallelppdev.Parallel instance at 0x83326ac>> ignored > > This seems to come from importing I2C. The application window opens, > but there's an error message: > > NO VIDEO SOURCE FOUND > > Next I tried libfg (http://antonym.org/libfg). I built it, made the > Python bindings and installed it. Unfortunately the following: > >>>> import fg >>>> grabber = fg.Grabber() > > results in: > > fg_open(): open video device failed: No such file or directory > > Since the camera works fine in Ubuntu itself my guess is that the > problem is with the python libraries (or even likelier, my usage of > them). Is there anybody here that was successful in accessing their > webcam on linux using Python? Else I have to reside to Windows and > VideoCapture (which relies on the win32 api and thus is Windows-only), > something I'd rather not do. > > Thanks for any help, > 2B > > =============== > I am uUsing: > WebCam: Logitech QuickCam Pro 400 > Ubuntu > Python 2.5
Some time ago I was playing with writing a webcam server under Linux using V4L - I found this bit of code which may help (it works for me). Obviously it needs X running to work and the associated libs installed. Note this is not my code but it was a good starting point for me to work from. I can't find a link to the original article but credit to the author. import pygame import Image from pygame.locals import * import sys import opencv #this is important for capturing/displaying images from opencv import highgui camera = highgui.cvCreateCameraCapture(0) def get_image(): im = highgui.cvQueryFrame(camera) #convert Ipl image to PIL image return opencv.adaptors.Ipl2PIL(im) fps = 30.0 pygame.init() window = pygame.display.set_mode((320,240)) pygame.display.set_caption("WebCam Demo") screen = pygame.display.get_surface() while True: events = pygame.event.get() for event in events: if event.type == QUIT or event.type == KEYDOWN: sys.exit(0) im = get_image() pg_img = pygame.image.frombuffer(im.tostring(), im.size, im.mode) screen.blit(pg_img, (0,0)) pygame.display.flip() pygame.time.delay(int(1000 * 1.0/fps)) Best of Luck Bgeddy -- http://mail.python.org/mailman/listinfo/python-list