cocoa - serial - macbook pro no arranca barra de progreso
¿Código de muestra para usar la cámara mac en un programa? (6)
Me gustaría utilizar la cámara en 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 el código de tipo "Hola mundo"?
Hay una utilidad llamada isightcapture que se ejecuta desde la línea de comandos de Unix que toma una imagen de la cámara de isight y la guarda.
Puede verificarlo en este sitio web: http://www.macupdate.com/info.php/id/18598
Un ejemplo de usar esto con AppleScript es:
dile a la aplicación "Terminal" do script "/ Applications / isightcapture myimage.jpg" end tell
El marco de ImageKit en Leopard tiene una clase IKPictureTaker
que le permitirá ejecutar la hoja o panel de toma de imágenes estándar que ha visto en iChat y otras aplicaciones.
Si no desea utilizar la interfaz estándar de panel / hoja de tomas de imágenes , puede usar la funcionalidad QTKit Capture para obtener una imagen de iSight.
Ambos requerirán escribir algún código de Cocoa en Objective-C, pero eso realmente no debería ser un obstáculo en estos días.
Si desea manipular la cámara directamente desde su código, debe usar las API QuickTime Capture o la envoltura Cocoa QTKit Capture (mucho mejor).
La única advertencia es: si usa un QTCaptureDecompressedVideoOutput, recuerde que las devoluciones de llamada no se realizan en el hilo principal, sino en el hilo de captura administrado QuickTIme. Utilice [someObject performSelectorOnMainThread: ... withObject: ... waitUntilDone: NO] para enviar mensajes a un objeto en el hilo principal.
Quartz Composer es también una forma agradable de capturar y trabajar con video, cuando es 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
A partir de una pregunta relacionada que pidió específicamente que la solución fuera pitónica, deberías intentar con la biblioteca de camface de motmot de Andrew Straw. También funciona con cámaras firewire, pero también funciona con isight, que es lo que estás buscando.
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 usa en esta muestra demo de neurociencia
Otra solución es OpenCV + python con un script como:
import cv
capture = cv.CaptureFromCAM(0)
img = cv.QueryFrame(capture)
No se puede hacer nada más simple!