質問

MacBook のカメラをプログラムで使用したいと考えています。私は言語にあまり依存しません。C、Java、Python などはすべて問題ありません。ドキュメントまたは「Hello world」タイプのコードを探すのに最適な場所を誰かが提案してもらえますか?

役に立ちましたか?

解決

Leopard の ImageKit フレームワークには、 IKPictureTaker このクラスを使用すると、iChat やその他のアプリケーションで見られる標準的な写真撮影シートまたはパネルを実行できます。

標準の写真撮影パネル/シート インターフェイスを使用したくない場合は、 QTKit キャプチャ iSight から画像を取得する機能。

どちらも Objective-C で Cocoa コードを記述する必要がありますが、最近ではそれが大きな障害になることはありません。

他のヒント

コードからカメラを直接操作したい場合は、QuickTime Capture API または Cocoa QTKit キャプチャ ラッパー(はるかに優れています)。

唯一の注意点は次のとおりです。QTCaptureDecompressedVideoOutput を使用する場合、コールバックはメイン スレッドではなく、QuickTIme が管理するキャプチャ スレッドで行われることに注意してください。[someObject PerformSelectorOnMainThread:...] を使用します。withオブジェクト:...waitUntilDone:NO] を使用して、メインスレッド上のオブジェクトにメッセージを送信します。

UNIX コマンドラインから実行される isightcapture というユーティリティがあり、isight カメラから写真を撮って保存します。

次の Web サイトで確認できます。 http://www.macupdate.com/info.php/id/18598

これを AppleScript で使用する例は次のとおりです。

アプリケーション「ターミナル」doスクリプト "/applications/isightcapture myimage.jpg" end tell

解決策がPythonであることを具体的に尋ねた関連する質問から、あなたは試してみるべきです モットモットの顔 アンドリュー・ストローのライブラリ。Firewire カメラでも機能しますが、あなたが探している視力でも機能します。

チュートリアルから:

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