我想在程序中使用 Macbook 中的摄像头。我对语言相当不可知——C、Java、Python 等都很好。谁能建议寻找文档或“Hello world”类型代码的最佳位置?

有帮助吗?

解决方案

Leopard 中的 ImageKit 框架有一个 IKPictureTaker 类,它可以让您运行在 iChat 和其他应用程序中看到的标准拍照表或面板。

如果您不想使用标准的拍照面板/纸张界面,您可以使用 QTKit 捕获 从 iSight 获取图像的功能。

这两者都需要用 Objective-C 编写一些 Cocoa 代码,但这现在不应该成为真正的障碍。

其他提示

如果您想直接从代码中操作相机,则必须使用 QuickTime Capture API 或 可可 QTKit 捕获 包装纸(好多了)。

唯一的警告是:如果您使用 QTCaptureDecompressedVideoOutput,请记住回调不是在主线程上进行的,而是在 QuickTIme 管理的捕获线程上进行的。使用 [someObject PerformSelectorOnMainThread:...与对象:...waitUntilDone:NO] 将消息发送到主线程上的对象。

有一个名为 isightcapture 的实用程序,它从 unix 命令行运行,可以从 isight 相机拍摄照片并保存。

您可以在这个网站上查看: http://www.macupdate.com/info.php/id/18598

将其与 AppleScript 一起使用的示例是:

告诉应用程序“终端” do脚本“/applications/isightCapture myimage.jpg”结束

从一个专门要求解决方案是Pythonic的相关问题来看,你应该尝试一下 莫莫特的camface 安德鲁·斯特劳的图书馆。它也适用于火线相机,但它也适用于 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,)

它用在这个 神经科学演示示例

如果适用的话,Quartz Composer 也是一种捕捉和处理视频的令人愉快的方式。有一个视频输入补丁。

Quartz Composer 是一个可视化编程环境,如果需要,可以集成到更大的 Cocoa 程序中。

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

另一个解决方案是 OpenCV+Python 与这样的脚本:

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

不能再简单了!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top