Question

J'aimerais utiliser l'appareil photo de mon Macbook dans un programme.Je suis assez indépendant du langage – C, Java, Python, etc. sont tous très bien.Quelqu'un pourrait-il suggérer le meilleur endroit pour rechercher des documents ou un code de type « Hello World » ?

Était-ce utile?

La solution

Le framework ImageKit dans Leopard a un IKPictureTaker classe qui vous permettra d'exécuter la feuille ou le panneau de prise de vue standard que vous avez vu dans iChat et d'autres applications.

Si vous ne souhaitez pas utiliser l'interface panneau/feuille de prise de photo standard, vous pouvez utiliser le Capture QTKit fonctionnalité pour obtenir une image de l'iSight.

Ces deux éléments nécessiteront l'écriture de code Cocoa en Objective-C, mais cela ne devrait pas vraiment être un obstacle de nos jours.

Autres conseils

Si vous souhaitez manipuler la caméra directement depuis votre code, vous devez utiliser les API QuickTime Capture ou le Capture de QTKit de cacao emballage (bien meilleur).

La seule mise en garde est :si vous utilisez un QTCaptureDecompressedVideoOutput, rappelez-vous que les rappels ne sont pas effectués sur le thread principal, mais sur le thread de capture géré par QuickTIme.Utilisez [someObject performSelectorOnMainThread:...avecObjet :...waitUntilDone:NO] pour envoyer des messages à un objet sur le thread principal.

Il existe un utilitaire appelé isightcapture qui s'exécute à partir de la ligne de commande Unix qui prend une photo de la caméra isight et l'enregistre.

Vous pouvez le consulter sur ce site internet : http://www.macupdate.com/info.php/id/18598

Un exemple d'utilisation de ceci avec AppleScript est :

Tell à l'application "Terminal" Do Script "/ Applications / IsightCapture Myimage.jpg" End Tell

À partir d'une question connexe qui demandait spécifiquement que la solution soit pythonique, vous devriez essayer de camiface de motmot bibliothèque d'Andrew Straw.Cela fonctionne également avec les caméras Firewire, mais cela fonctionne également avec l'isight, ce que vous recherchez.

Extrait du tutoriel :

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,)

Il est utilisé dans ce exemple de démo de neurosciences

Quartz Composer est également un moyen agréable de capturer et de travailler avec de la vidéo, lorsque cela est applicable.Il y a un patch d'entrée vidéo.

Quartz Composer est un environnement de programmation visuelle qui s'intègre si nécessaire dans un programme Cocoa plus vaste.

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

Une autre solution est OpenCV+python avec un script comme :

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

On ne peut pas faire plus simple !

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top