Можно ли программно получить доступ к камере iSight на MacBook? Под этим я подразумеваю, что хотел бы иметь возможность просто захватывать неподвижные кадры с камеры iSight по команде, а затем что-то с ними делать. Если да, то доступен ли он только с помощью цели c или можно использовать и другие языки?





У меня нет Mac, но здесь есть документация:
Похоже, вам нужно пройти через QuickTime API. Предполагается, что существует образец проекта под названием «MungGrab», на который стоит взглянуть согласно эта ветка.
Эта ссылка по-прежнему выдает ошибку 404. Можете ли вы обновить ссылку или еще лучше улучшить ответ, чтобы он не полагался на ссылку.
Помимо ObjC, вы также можете использовать привязки PyObjC или RubyCocoa для доступа к нему. Если вы не разборчивы в выборе языка, я бы сказал, что используйте Ruby, поскольку PyObjC ужасно плохо документирован (даже официальная страница Apple на нем относится к старой версии, а не к той, которая была в OS X Leopard).
Quartz Composer, вероятно, самый простой способ получить к нему доступ, а файлы .quartz можно довольно легко встраивать в приложения (и данные передаются в ObjC или тому подобное)
Кроме того, я полагаю, что в каталоге / Developer / examples / должно быть несколько примеров.
Есть утилита командной строки isightcapture, которая делает более или менее то, что вы хотите делать. Вероятно, вы могли бы получить код от разработчика (его адрес электронной почты находится в файле readme, который вы получаете при загрузке утилиты).
Вы должны проверить Документация по QTKit Capture.
На Leopard все это можно получить через мост RubyCocoa:
require 'osx/cocoa'
OSX.require_framework("/System/Library/Frameworks/QTKit.framework")
OSX::QTCaptureDevice.inputDevices.each do |device|
puts device.localizedDisplayName
end
Если вы покопаетесь в списках рассылки Apple, вы также сможете найти код для этого и на Java. Вот простой пример, подходящий для захвата отдельных кадров. и вот более сложный, достаточно быстрый, чтобы отображать живое видео.
Одна вещь, о которой пока не упоминалось, - это IKPictureTaker, который является частью Image Kit. Это приведет к появлению стандартной панели, предоставляемой ОС, чтобы делать снимки, со всеми возможными функциями фильтра и т. д. Я не уверен, что вы этого хотите.
Я полагаю, вы можете использовать его и на других языках, учитывая, что есть такие вещи, как какао-мосты, но у меня нет опыта с ними.
Google также придумал еще один вопрос по stackoverflow, который, похоже, решает эту проблему.
Из связанного вопроса, в котором конкретно указано, что решение должно быть питоническим, вы должны попробовать библиотеку камуфляж мотмота от Эндрю Стро. Он также работает с камерами 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,)
привет ... У меня не найдена страница для ссылки на developer.apple.com, которую вы предложили ... вы можете ее обновить?