2008-09-11 5 views
13

मैं एक प्रोग्राम में अपने मैकबुक में कैमरा का उपयोग करना चाहता हूं। मैं काफी भाषा अज्ञेयवादी हूं - सी, जावा, पायथन इत्यादि ठीक हैं। क्या कोई दस्तावेज़ या "हैलो वर्ल्ड" टाइप कोड देखने के लिए सबसे अच्छी जगह सुझा सकता है?एक प्रोग्राम में मैक कैमरा का उपयोग करने के लिए नमूना कोड?

उत्तर

7

तेंदुए में छविकिट ढांचे में IKPictureTaker कक्षा है जो आपको मानक चित्र लेने वाली शीट या पैनल को चलाने के लिए अनुमति देगी जो आपने iChat और अन्य अनुप्रयोगों में देखी थी।

यदि आप मानक चित्र-लेने वाले पैनल/शीट इंटरफ़ेस का उपयोग नहीं करना चाहते हैं, तो आप iSight से छवि प्राप्त करने के लिए QTKit Capture कार्यक्षमता का उपयोग करें।

इन दोनों को उद्देश्य-सी में कुछ कोको कोड लिखने की आवश्यकता होगी, लेकिन इन दिनों वास्तव में बाधा नहीं होनी चाहिए।

+0

अगर कोई इसे प्राप्त करता है तो मुझे कुछ उदाहरण कोड देखने में खुशी होगी। शायद सीधे ctypes के माध्यम से? – meduz

1

ऐसी उपयोगिता है जिसे isightcapture कहा जाता है जो यूनिक्स कमांड लाइन से चलता है जो आइस कैमरे से एक तस्वीर लेता है और इसे बचाता है।

आप इस वेब साइट पर यह देख सकते हैं: http://www.macupdate.com/info.php/id/18598

AppleScript के साथ इस का उपयोग करने का एक उदाहरण है:

बताई आवेदन "टर्मिनल" स्क्रिप्ट "/ Applications/isightcapture myimage.jpg" करना अंत

2

यदि आप सीधे अपने कोड से कैमरे में हेरफेर करना चाहते हैं, तो आपको क्विकटाइम कैप्चर एपीआई या Cocoa QTKit Capture रैपर (बहुत बेहतर) का उपयोग करना होगा।

केवल चेतावनी है: यदि आप QTCaptureDecompressedVideoOutput का उपयोग करते हैं, तो याद रखें कि कॉलबैक मुख्य थ्रेड पर नहीं हैं, लेकिन क्विकटाइम-प्रबंधित कैप्चर थ्रेड पर। [SomeObject performSelectorOnMainThread: ... के साथ ऑब्जेक्ट: ... प्रतीक्षा करें कोई नहीं: NO] मुख्य थ्रेड पर किसी ऑब्जेक्ट को संदेश भेजने के लिए।

0

क्वार्ट्ज संगीतकार वीडियो लागू होने पर वीडियो के साथ कैप्चर और काम करने का एक सुखद तरीका भी है। एक वीडियो इनपुट पैच है।

क्वार्ट्ज संगीतकार एक दृश्य प्रोग्रामिंग वातावरण है जो आवश्यकता होने पर एक बड़े कोको कार्यक्रम में एकीकृत करता है।

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

1

एक संबंधित सवाल जो विशेष रूप से समाधान पूछा pythonic होने के लिए से, आप एंड्रयू स्ट्रॉ से motmot's camiface पुस्तकालय के लिए एक कोशिश देना चाहिए। यह फायरवायर कैमरों के साथ भी काम करता है, लेकिन यह इस दृष्टि के साथ भी काम करता है, जो आप खोज रहे हैं।

ट्यूटोरियल से:

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

यह इस sample neuroscience demo

0

में प्रयोग किया जाता है एक अन्य समाधान की तरह एक स्क्रिप्ट के साथ OpenCV+python है:

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

किसी भी सरल नहीं कर सकते!

संबंधित मुद्दे