2008-09-11 20 views

cevap

7

Leopard'daki ImageKit çerçevesi, iChat'te ve diğer uygulamalarda gördüğünüz standart resim çekme sayfasını veya paneli çalıştırmanıza olanak tanıyan bir IKPictureTaker sınıfına sahiptir.

Standart fotoğraf çeken panel/sayfa arabirimini kullanmak istemiyorsanız, iSight'tan görüntü almak için QTKit Capture işlevini kullanın.

Her ikisi de Objective-C'de bazı Kakao kodlarının yazılmasını gerektirecektir, ancak bu gerçekten bu günlerde bir engel olmamalıdır.

+0

Herhangi biri bunu başarırsa, bazı örnek kodları görmekten memnun olurum. Belki de doğrudan ktiplerle mi? – meduz

1

Unight komut satırından çalışan ve kameradan bir fotoğraf çeken ve kaydedilen isightcapture adlı bir yardımcı program vardır.

Bu web sitesinde bunu kontrol edebilirsiniz: http://www.macupdate.com/info.php/id/18598

AppleScript ile bu kullanımına bir örnektir:

söyle uygulaması "Terminal" komut dosyası "/ Uygulamalar/isightcapture myImage.jpg" do son söyleyin

2

Fotoğraf makinesini doğrudan kodunuzdan değiştirmek isterseniz, QuickTime Capture API'lerini veya Cocoa QTKit Capture sarıcısını (çok daha iyi) kullanmanız gerekir.

Tek uyarı: bir QTCaptureDecompressedVideoOutput kullanıyorsanız, geri aramaların ana iş parçacığında değil, QuickTIme tarafından yönetilen yakalama iş parçacığında yapılmadığını unutmayın. Ana thread üzerindeki bir nesneye mesaj göndermek için [someObject performSelectorOnMainThread: ... withObject: ... waitUntilDone: NO] kullanın.

0

Quartz Composer, uygulanabilir olduğunda video ile fotoğraf çekmek ve çalışmak için de keyifli bir yoldur. Bir video giriş yaması var.

Quartz Composer, gerektiğinde daha büyük bir Kakao programına entegre edilen görsel bir programlama ortamıdır.

özellikle pythonic çözüm istedi İlgili bir soru itibaren

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

1

, Andrew Straw dan motmot's camiface kütüphaneye denemek vermelidir. Aynı zamanda firewire kameraları ile çalışır, ama aynı zamanda, aradığınız şey olan isight ile de çalışır. öğretici itibaren

:

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

herhangi basit yapamaz:

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

Başka bir çözüm gibi bir komut ile OpenCV+python bu sample neuroscience demo

İlgili konular