Frage

Ich möchte die Kamera in meinem Macbook in einem Programm verwenden.Ich bin ziemlich sprachunabhängig – C, Java, Python usw. sind alle in Ordnung.Könnte jemand den besten Ort vorschlagen, um nach Dokumenten oder Code vom Typ „Hallo Welt“ zu suchen?

War es hilfreich?

Lösung

Der ImageKit Rahmen in Leopard hat eine IKPictureTaker Klasse, die Sie laufen läßt das Standard-Bildaufnahmeblatt oder Platte, die Sie in iChat und anderen Anwendungen gesehen.

Wenn Sie nicht möchten, dass die Standard-Bildfängerplatte / Blatt-Schnittstelle verwenden, können Sie eine Verwendung der QTKit Capture- Funktionalität ein Bild von der iSight zu erhalten.

Beide erfordern einen Cocoa-Code in Objective-C zu schreiben, aber das sollte in diesen Tagen nicht wirklich ein Hindernis sein.

Andere Tipps

Wenn Sie die Kamera direkt aus dem Code manipulieren wollen, müssen Sie die Quicktime-Capture-APIs verwenden, oder die Cocoa QTKit erfassen Wrapper (viel besser).

Die einzige Einschränkung ist: Wenn Sie einen QTCaptureDecompressedVideoOutput verwenden, denken Sie daran, dass die Rückrufe auf dem Haupt-Thread nicht vorgenommen werden, sondern auf dem Quicktime-Managed-Capture-Thread. Verwenden Sie [someobject performSelectorOnMainThread: ... withobject: ... waitUntilDone: NO]. Nachrichten an ein Objekt auf dem Haupt-Thread senden

Es gibt ein Programm namens isightcapture, die aus der Unix-Kommandozeile ausgeführt wird, die ein Bild von der iSight Kamera nimmt und speichert es.

Sie können es auf dieser Website finden Sie unter: http: //www.macupdate .com / info.php / id / 18598

Ein Beispiel für die Verwendung dieses mit Applescript ist:

tell application "Terminal"    do script "/ Applications / isightcapture myimage.jpg" Ende tell

Von einer verwandten Frage, die speziell auf die Lösung gefragt sein pythonic, sollten Sie einen Versuch geben, um zu motmot des camiface rel="nofollow Bibliothek von Andrew Straw. Es funktioniert auch mit Firewire-Kameras, aber es funktioniert auch mit der iSight, das ist das, was Sie suchen.

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

Es wird in diesem Beispiel Neurowissenschaften Demo

Quartz Composer sind auch eine angenehme Art und Weise mit Video zu erfassen und zu arbeiten, wenn es anwendbar ist. Es gibt ein Video Input Patch.

Quartz Composer ist eine visuelle Programmierumgebung, die in einem größeren Cocoa-Programm integriert wenn es sein muss.

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

Eine andere Lösung ist OpenCV + Python mit einem Skript wie:

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

Kann nicht tun Einfacher!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top