argparse for capture
[imago.git] / camera.py
index ec94787..a1be68b 100644 (file)
--- a/camera.py
+++ b/camera.py
@@ -3,17 +3,19 @@ import os
 if os.name == 'posix':
     
     import Image
-    import cv
+    import cv2.cv as cv
 
     class Camera:
-        def __init__(self):
-            self._cam = cv.CreateCameraCapture(0)
+        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 get_image(self):
-            for _ in range(5): #HACK
+            for _ in range(8): #HACK
                 im = cv.QueryFrame(self._cam)
             # Add the line below if you need it (Ubuntu 8.04+)
-            im = cv.GetMat(im)
+            #im = cv.GetMat(im)
             #convert Ipl image to PIL image
             return Image.fromstring("RGB", cv.GetSize(im), im.tostring())
         
@@ -27,7 +29,7 @@ elif os.name in ('ce', 'nt', 'dos'):
 
     # TODO exception handling
     class Camera:
-        def __init__(self):
+        def __init__(self, device=0):
             self._cam = Device()
             self._cam.setResolution(640, 480)