Codice di esempio per l'utilizzo di mac fotocamera in un programma?
-
09-06-2019 - |
Domanda
Vorrei utilizzare la fotocamera nel mio Macbook in un programma.Io sono abbastanza indipendente dalla lingua - C, Java, Python, ecc sono tutte belle.Qualcuno potrebbe suggerire il posto migliore per cercare i documenti o "Ciao mondo" tipo di codice?
Soluzione
Il ImageKit quadro in Leopard è un IKPictureTaker
classe che vi permetterà di eseguire lo standard per lo scatto di foto del foglio o del pannello che si vede in iChat e di altre applicazioni.
Se non si desidera utilizzare l'immagine standard-taker pannello/foglio di interfaccia, è possibile utilizzare il QTKit Cattura funzionalità per ottenere un'immagine dalla webcam iSight.
Entrambi questi richiedono la scrittura di Cacao codice in Objective-C, ma che non dovrebbe davvero essere un ostacolo in questi giorni.
Altri suggerimenti
Se si desidera modificare la fotocamera direttamente dal codice, è necessario utilizzare QuickTime Catturare le Api o le Cacao QTKit Cattura wrapper (molto meglio).
L'unica avvertenza è di:se si utilizza un QTCaptureDecompressedVideoOutput, ricordate che i richiami non sono fatte nel thread principale, ma su QuickTIme gestito da catturare thread.Usare [someObject performSelectorOnMainThread:...withObject:...waitUntilDone:NO] per l'invio di messaggi a un oggetto sul thread principale.
C'è un programma di utilità chiamato isightcapture che viene eseguito dalla riga di comando di unix che prende una foto dalla fotocamera isight e la salva.
È possibile controllare questo sito: http://www.macupdate.com/info.php/id/18598
Un esempio di utilizzo di questo con AppleScript è:
utilizza l'applicazione "Terminale" fare script "/Applicazioni/isightcapture myimage.jpg" fine dire
Legate da una domanda che ha chiesto esplicitamente la soluzione divinatori, si dovrebbe dare una prova di motmot del camiface libreria da Andrea Paglia.Funziona anche con le telecamere, ma funziona anche con la isight, che è quello che stai cercando.
Dal 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,)
È usato in questo esempio di neuroscienze demo
Quartz Composer è anche un modo piacevole per catturare e lavorare con il video, quando è applicabile.C'è un video input patch.
Quartz Composer è un ambiente di programmazione grafico che si integra in un più ampio Cacao programma, se necessario.
http://developer.apple.com/graphicsimaging/quartz/quartzcomposer.html
Un'altra soluzione è OpenCV+python con uno script come:
import cv
capture = cv.CaptureFromCAM(0)
img = cv.QueryFrame(capture)
Non può fare niente di più semplice!