Objective c 以编程方式访问iSight?
是否可以通过编程方式访问macbook上的iSight摄像头?我的意思是,我希望能够在命令下从iSight摄像头抓取静止帧,然后对其进行处理。如果是这样的话,它是只能使用objective c访问,还是也可以使用其他语言 我这里没有Mac电脑,但这里有一些文档:Objective c 以编程方式访问iSight?,objective-c,macos,webcam,isight,Objective C,Macos,Webcam,Isight,是否可以通过编程方式访问macbook上的iSight摄像头?我的意思是,我希望能够在命令下从iSight摄像头抓取静止帧,然后对其进行处理。如果是这样的话,它是只能使用objective c访问,还是也可以使用其他语言 我这里没有Mac电脑,但这里有一些文档: 看起来您必须通过QuickTime API。应该有一个名为“MungGrab”的示例项目,根据需要,它可能值得一看。除了ObjC之外,您还可以使用PyObjC或rubycoa绑定来访问它。如果你对哪种语言不挑剔,我会说使用Ruby,因
看起来您必须通过QuickTime API。应该有一个名为“MungGrab”的示例项目,根据需要,它可能值得一看。除了ObjC之外,您还可以使用PyObjC或rubycoa绑定来访问它。如果你对哪种语言不挑剔,我会说使用Ruby,因为PyObjC的文档记录非常糟糕(甚至苹果官方页面上也提到了旧版本,而不是OS X Leopard附带的版本) Quartz Composer可能是访问它的最简单的方法,而且.Quartz文件可以很容易地嵌入到应用程序中(数据通过管道传输到ObjC或类似的应用程序)
另外,我想在/Developer/Examples/中应该有一两个这样的例子,有一个名为
的命令行实用程序,它或多或少地完成了您想要做的事情。您可能会从开发人员那里获得代码(他的电子邮件地址在您下载该实用程序时获得的自述文件中)。您应该查看
在Leopard上,您可以通过RubyCocoa桥获得所有信息:
require 'osx/cocoa'
OSX.require_framework("/System/Library/Frameworks/QTKit.framework")
OSX::QTCaptureDevice.inputDevices.each do |device|
puts device.localizedDisplayName
end
如果你浏览一下苹果的邮件列表,你也可以找到一些用Java编写的代码,还有。到目前为止还没有提到的一件事是,它是图像工具包的一部分。这将带来标准操作系统提供的面板来拍照,包括所有可能的过滤功能等。我不确定这是否是你想要的 我想你也可以从其他语言中使用它,考虑到有类似的东西,但我没有使用它们的经验
谷歌也提出了解决这个问题的方法。从一个相关的问题来看,这个问题特别要求解决方案是pythonic的,你应该尝试一下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,)
你好我得到了你建议的developer.apple.com链接的页面未找到。。。你能更新它吗?这个链接仍然给出一个404错误。你可以更新链接,或者更好的是改进答案,使其不依赖链接。