Пример кода для использования Mac камеры в программе? - PullRequest
13 голосов
/ 11 сентября 2008

Я хотел бы использовать камеру в моем Macbook в программе. Я довольно независим от языка - C, Java, Python и т. Д. Все в порядке. Кто-нибудь может предложить лучшее место для поиска документов или кода типа «Hello world»?

Ответы [ 6 ]

7 голосов
/ 11 сентября 2008

Платформа ImageKit в Leopard имеет класс IKPictureTaker, который позволит вам запускать стандартный лист или панель для съемки фотографий, которые вы видели в iChat и других приложениях.

Если вы не хотите использовать стандартный интерфейс панели / листа для захвата изображений, вы используете функцию QTKit Capture для получения изображения из iSight.

Обе эти задачи потребуют написания некоторого кода Какао в Objective-C, но в наши дни это не должно быть препятствием.

2 голосов
/ 12 сентября 2008

Если вы хотите манипулировать камерой непосредственно из своего кода, вы должны использовать API QuickTime Capture или оболочку Cocoa QTKit Capture (намного лучше).

Единственное предупреждение: если вы используете QTCaptureDecompressedVideoOutput, помните, что обратные вызовы выполняются не в основном потоке, а в потоке захвата, управляемого QuickTIme. Используйте [someObject executeSelectorOnMainThread: ... withObject: ... waitUntilDone: NO] для отправки сообщений объекту в главном потоке.

1 голос
/ 04 февраля 2010

Из соответствующего вопроса, в котором конкретно указывалось, что решение является pythonic, вы должны попробовать библиотеку motmot camiface от Andrew Straw. Он также работает с камерами FireWire, но он также работает с isight, который вы ищете.

Из учебника:

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

Используется в этом демонстрационном примере нейробиологии

1 голос
/ 11 сентября 2008

Существует утилита isightcapture, которая запускается из командной строки unix, которая берет изображение с камеры isight и сохраняет его.

Вы можете проверить это на этом веб-сайте: http://www.macupdate.com/info.php/id/18598

Пример использования этого с AppleScript:

Расскажите приложение "Терминал" сделать скрипт "/ Applications / isightcapture myimage.jpg" конец сказать

0 голосов
/ 24 января 2011

Другое решение - OpenCV + python со скриптом, подобным:

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

Не может сделать ничего проще!

0 голосов
/ 18 сентября 2008

Quartz Composer - это также приятный способ захвата и работы с видео, когда это применимо. Есть патч для видеовхода.

Quartz Composer - это среда визуального программирования, которая при необходимости интегрируется в более крупную программу Cocoa.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...