Cámara uEye con python en Windows

Necesito conseguir unCámara uEye trabajando conpitón en Windows para tomar fotos y operar en la transmisión en vivo.
Como las cámaras uEye son cámaras industriales muy extendidas, habría pensado que existe una solución estándar para esto; Sin embargo, no pude encontrar ninguno. La solución debe ejecutarse en Python 2.7 en Windows XP o Windows 7.

Agradecería a cualquiera que haya utilizado con éxito una cámara uEye en Python en Windows para compartir sus conocimientos sobre este tema o al menos señalarme en la dirección correcta. También siento que realmente es necesario encontrar una solución genérica, ya que no soy el único con este requisito.

Lo que he probado hasta ahora

(a) pyueye

Hay uncontrolador de Python disponible que funciona en Linux y, según la documentación, "debería funcionar en Windows".

Lo intenté pero la instalación falló:
python setup.py install me da

ueye\ueye.pyx: cannot find cimported module 'stdlib'
ueye\ueye.pyx: cannot find cimported module 'python_cobject'
Compiling ueye\ueye.pyx because it changed.
Compiling ueye\ueyeh.pyx because it changed.
[1/2] Cythonizing ueye\ueye.pyx

No tengo idea de quecimported módulos son y si esto debería funcionar en absoluto. Por lo tanto, sería bueno saber si alguien ha instalado correctamente este controlador en un sistema Windows.

(b) openCV

OpenCV parece ser algún tipo de estándar para la captura y el procesamiento de imágenes. Parece que algunas personas lo han usado para acceder a una cámara uEye, mientras que también parece haber cierto consenso de que las cámaras uEye no funcionan con openCV. No he encontrado ningún código de ejemplo que funcione.

De todos modos probé esto (usando openCV versión 2.4.13) y puedo acceder a la cámara y recuperar una imagen de ella. La resolución inicialmente es480 x 640, pero puedo cambiarlo a la resolución del sensor de768 x 1024. Sin embargo, no puedo configurar el tiempo de exposición y la ganancia correctamente, como se puede ver en el siguiente código que utilicé.

cam = cv2.VideoCapture(0)

width = cam.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)     
height = cam.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT) 
exposure = cam.get(cv2.cv.CV_CAP_PROP_EXPOSURE) 
print width, height, exposure # prints 640 480 -4.0
hr = cam.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, 768)
wr = cam.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, 1024) 
print "Setting resolution ", hr, wr  # prints  True True
cam.set(cv2.cv.CV_CAP_PROP_EXPOSURE, 0)  # or any other value, same for gain

width = cam.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)    
height = cam.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT) 
exposure = cam.get(cv2.cv.CV_CAP_PROP_EXPOSURE) 
print width, height, exposure # 1024.0 768.0 -4.0

ret, buff = cam.read() 
cam.release()

Bien puede ser que la cámara esté en algún tipo deModo automático que ajusta automáticamente los parámetros comotiempo de exposición yganancia. Pero si este es el caso, ¿cómo establecería esto?Modo automático apagado.

(c) simpleCV

simpleCV parece ser una alternativa a openCV. También probé eso y da el problema de buscar solo un480 x 640 imagen de píxel y no pude encontrar ninguna manera de configurarlo de manera diferente, ni una forma de configurar el tiempo de exposición.

from SimpleCV import Camera
cam = Camera(0)
img = cam.getImage() # img is a 480 x 640 pixel image
(d) Escribir su propio controlador en C

Una opción podría ser escribir un código C para acceder a la cámara a través de su SDK. Una completadocumentación del SDK está disponible y parece que alguien lo ha hecho con éxito (aquíoaquí) pero ni siquiera sabría por dónde empezar y cómo llevar la imagen en vivo a Python.

Respuestas a la pregunta(2)

Su respuesta a la pregunta