if os.name == 'posix':
import Image
- import cv2.cv as cv
+ import cv
class Camera:
- def __init__(self, device=0):
- self._cam = cv.CaptureFromCAM(device)
- print cv.GetCaptureProperty(self._cam, cv.CV_CAP_PROP_CONVERT_RGB)
- cv.SetCaptureProperty(self._cam, cv.CV_CAP_PROP_CONVERT_RGB, True)
+ def __init__(self, vid=0):
+ self._cam = cv.CreateCameraCapture(vid)
def get_image(self):
- for _ in range(8): #HACK
- cv.QueryFrame(self._cam)
- im = cv.QueryFrame(self._cam)
+ for _ in range(5): #HACK
+ im = cv.QueryFrame(self._cam)
# Add the line below if you need it (Ubuntu 8.04+)
#im = cv.GetMat(im)
#convert Ipl image to PIL image
- return Image.fromstring("RGB", cv.GetSize(im), im.tostring())
+ return Image.fromstring("RGB", cv.GetSize(im), im.tostring(), "raw",
+ "BGR", 0, 1)
def __del__(self):
del self._cam
elif os.name in ('ce', 'nt', 'dos'):
from VideoCapture import Device
- import time
# TODO exception handling
class Camera:
- def __init__(self, device=0):
+ def __init__(self):
self._cam = Device()
self._cam.setResolution(640, 480)
- #HACK to let the camera self-adjust:
- print "The device is getting ready."
- for _ in xrange(20):
- self._cam.getImage()
- time.sleep(0.5)
def get_image(self):
return self._cam.getImage()