Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 以编程方式访问iSight?_Objective C_Macos_Webcam_Isight - Fatal编程技术网

Objective c 以编程方式访问iSight?

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

是否可以通过编程方式访问macbook上的iSight摄像头?我的意思是,我希望能够在命令下从iSight摄像头抓取静止帧,然后对其进行处理。如果是这样的话,它是只能使用objective c访问,还是也可以使用其他语言

我这里没有Mac电脑,但这里有一些文档:


看起来您必须通过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错误。你可以更新链接,或者更好的是改进答案,使其不依赖链接。