いちおう動きますが,二度目以降の起動に問題があります.

  • 二度目以降,bind "/tmp/.capture_socket": Address already in useというエラーが出ます
    • /tmp/.capture_socketを消すと起動します
  • 二度目の起動の前にカメラの電源をoff/onしないと,startした後で止まります.

ということでまだ未完のページです.

Mac OS X で, capture を使って,デジカメをUSB経由で制御する

Mac OS X 10.4.10 に captureをインストールして キヤノンなどのデジカメをUSB経由でコントロールした. 超高解像度の定点カメラなどが作れる.

$ capture
capture> start
capture> macro on
capture> capture cat.jpg

とか

$ capture start
$ capture 'macro on'
$ capture 'capture cat.jpg'

のような手順で写真が撮れる.

captureで制御できるカメラは, 画像転送プロトコルの標準規格PTP (Picture Transfer Protocol: ISO 15704) というのに対応したカメラである. (さらにその中でもカメラをコントロールする拡張機能をサポートしている機種) キヤノンのすこし古いデジカメが多く対応していて, Cameras4Captureなどが制御できるらしい. 最近のカメラはサポートされていないらしいが,安い機種なら 中古で1万円未満で買えるし,解像度も十分だと思われる.

PTPCamera を起動させないようにする(しないと面倒)

captureに対応したカメラ (PTP対応のカメラ) をMacintoshに接続すると, 撮影された写真が,iPhotoなどで自動的に取り込まれる. でもこれをされては,カメラのアクセス権を取られてしまうので,captureで使えなくて困る. topコマンドで見ていると,カメラを接続するとPTPCameraというアプリケーションが動くようである. 毎回,PTPCameraのPIDを調べてkillしても良いが,面倒なので,次のようにした. psコマンドでPTPCameraの場所を見ると,

/System/Library/Image Capture/Devices/PTPCamera.app

であった.ということで,

sudo chmod a-x "/System/Library/Image Capture/Devices/PTPCamera.app"

として,起動しないようにした.

libreadline を更新する(しなくても良い)

captureのMakefileでは,libreadlineを使うかどうかを決められる. (デフォルトでは使う設定) readlineを使う設定にすると,コマンドラインから使うときに履歴機能などが使えるようになる. とはいえ,captureは他のプログラムやシェルスクリプトから使うことになるので, 無くても良い,あればデバッグにちょっと嬉しいという程度の機能である. (デジカメをインタラクティブに操作するなら,キヤノンが無償で配布している GUIベースのアプリを使った方がずっと便利)

でもやっぱり使いたいと思った場合には,以下のようにする.

http://www.cbrc.jp/~tominaga/tips/osx_gnuplot.html

にある内容を要約すると,

http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html

からGNU readlineをもらってくる.

Xcode 2.1 on Mac OS X Tiger 10.4.1では /usr/lib/libreadline.dylibが最新ではなく、
しかもgccはあとから インストールしたものよりもこれを先にリンクしてしまうので、 
新しいGNU readlineをインストールしてても、gnuplotのコンパイル時にエラーを出されるので,

cd /usr/lib
sudo mv libreadline.dylib libreadline.dylib_original

それからGNU readlineをインストール。
tar zxf readline-5.1.tar.gz && readline-5.2
./configure --disable-shared && make && sudo make install

とすると良い.

libusb を入れる(必須)

  • apt-get install libusb-0.1-4 でもインストールできる.が,これではcaptureのmakeができなかった.
    • もしかしたら古いのかもしれない(0.1.8以上が必要らしい)
  • そこで,http://sourceforge.net/projects/libusb/ から最新版をダウンロード.
    • ./configure→make→sudo make install

libptp を入れる(必須)

captureをインストール(必須)

  • http://sourceforge.net/projects/capture からダウンロード.
  • gtk使わないつもりなのでMakefileのHAVE_GTK = -DHAVE_GTKをコメントアウトする
  • readlineを使わない場合は,MakefileのAVE_READLINE = -DHAVE_READLINEもコメントアウトする

関連ページ


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-09-24 (月) 02:00:58 (3712d)