Pregunta

Me gustaría usar la cámara de mi Macbook en un programa.Soy bastante independiente del lenguaje: C, Java, Python, etc. están bien.¿Alguien podría sugerir el mejor lugar para buscar documentos o códigos tipo "Hola mundo"?

¿Fue útil?

Solución

El marco ImageKit en Leopard tiene una IKPictureTaker clase que le permitirá ejecutar la hoja o panel estándar para tomar fotografías que vio en iChat y otras aplicaciones.

Si no desea utilizar la interfaz estándar de panel/hoja para tomar fotografías, puede utilizar el Captura QTKit funcionalidad para obtener una imagen de iSight.

Ambos requerirán escribir algo de código Cocoa en Objective-C, pero eso no debería ser un obstáculo en estos días.

Otros consejos

Si desea manipular la cámara directamente desde su código, debe usar las API de QuickTime Capture o la Captura de QTKit de cacao envoltorio (mucho mejor).

La única advertencia es:Si usa QTCaptureDecompressedVideoOutput, recuerde que las devoluciones de llamada no se realizan en el hilo principal, sino en el hilo de captura administrado por QuickTIme.Utilice [someObject performSelectorOnMainThread:...conObjeto:...waitUntilDone:NO] para enviar mensajes a un objeto en el hilo principal.

Hay una utilidad llamada isightcapture que se ejecuta desde la línea de comando de Unix y toma una fotografía de la cámara isight y la guarda.

Puedes consultarlo en este sitio web: http://www.macupdate.com/info.php/id/18598

Un ejemplo de uso de esto con AppleScript es:

decir aplicación "terminal" do script "/aplicaciones/isightCapture myImage.jpg" Fin

A partir de una pregunta relacionada que pedía específicamente que la solución fuera pitónica, debería intentarlo camisola de momoto biblioteca de Andrew Straw.También funciona con cámaras firewire, pero también funciona con isight, que es lo que buscas.

Del tutorial:

import motmot.cam_iface.cam_iface_ctypes as cam_iface
import numpy as np

mode_num = 0
device_num = 0
num_buffers = 32

cam = cam_iface.Camera(device_num,num_buffers,mode_num)
cam.start_camera()
frame = np.asarray(cam.grab_next_frame_blocking())
print 'grabbed frame with shape %s'%(frame.shape,)

Se utiliza en este muestra de demostración de neurociencia

Quartz Composer también es una forma agradable de capturar y trabajar con vídeo, cuando sea aplicable.Hay un parche de entrada de video.

Quartz Composer es un entorno de programación visual que se integra en un programa Cocoa más grande si es necesario.

http://developer.apple.com/graphicsimaging/quartz/quartzcomposer.html

Otra solución es OpenCV+python con un guión como:

import cv
capture = cv.CaptureFromCAM(0)
img = cv.QueryFrame(capture)

¡No puedo hacerlo más simple!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top