Che-ez! SPYZ買っちゃった
安価なデジカメとして Che-ez!シリーズ
が巷に出回っていますね。
というわけで私も、
Che-ez! SPYZ(スパイシー)
を買っちゃいました。
このシリーズのデジカメは、記録メディアが内蔵のSDRAMだったりするので、USBを使って画像データを吸い出すようになっています。
…で、当然吸い出す専用のソフトが付属してくるわけですが、Windows/Machintosh用のソフトしか無いわけです。
そこで、このページではどうやったらFreeBSDとChe-ez!シリーズが仲よくできるかについて書いてみます。
Che-ez!って何で出来てるの?
このChe-ez!シリーズで使われているのは、
STマイクロエレクトロニクス社
のSTV0680
というワンチップLSIです。
こいつは、CCD, ボタン, beep音, (USB|Serial)など全ての制御を行っています。
というわけで、画像データを吸い出すには STV0680 と USB 経由で通信できればいいわけです。
用意するもの
…で、STV0680と通信するソフトを書こうかな〜と思っていたところ、gphoto2というソフトが対応していることが分りました。
というわけで、意外とさっくり動きました。
作り方
libusb
まずは libusbをインストールしておく必要があります。
libusb-0.1.4.tar.gzを展開します。
# tar xvfz libusb-0.1.4.tar.gz
libusb-0.1.4
libusb-0.1.4/Makefile.in
libusb-0.1.4/README
libusb-0.1.4/stamp-h.in
:
あとはお約束の./configureを走らせて、make install
でOKです。
# cd libusb-0.1.4
# ./configure
checking for a BSD compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
:
# make install
gphoto2
次に gphoto2 のインストール。
こちらも、まずはgphoto-2.0beta3.tar.gzを展開します。
# tar xvfz gphoto-2.0beta3.tar.gz
gphoto-2.0beta3
gphoto-2.0beta3/intl/
gphoto-2.0beta3/intl/ChangeLog
gphoto-2.0beta3/intl/Makefile.in
:
…で、./configureに適当なオプションを付けます。
gphoto2は、さまざまなデジカメに対応していて、それぞれのドライバを必要に応じて組み込むようになっています。
今回はstv0680だけで動けばいいので、ドライバはstv0680のみを組み込みました。
そのあとは、make installでOK。
この際に、makeコマンドは、GNUのmakeを使わないとうまくコンパイルできないようです。
# cd gphoto-2.0beta3
# ./configure --disable-nls --with-included-gettext --with-drivers=stv0680
checking for a BSD compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for mawk... awk
checking whether make sets ${MAKE}... yes
:
# gmake install
使ってみる
インストールが完了したら、早速デジカメから画像を吸い出してみます。
デジカメの中の画像の枚数の確認
USBのケーブルでPCとデジカメを接続しておきます。
また、/dev/ugen0へのアクセス権が一般ユーザにはないので、
私はsudoを使っています。
各種オプションについては、gphoto2をオプションなしで実行すると、説明が表示されますので、これを参考にしましょう。
-nオプションが、画像の枚数を表示するためのオプションです。
% sudo gphoto2 --port usb: --speed 115200 --camera stv0680 -n
Status: Initializing 'STV0680'...
ping ok
Status: Listing files in '/'...
STV: getting file count
GFI OK, count = 3
Number of pictures in folder /: 3
というわけで、3枚の画像があることがわかりました。
画像を吸ってみる
全ての画像を吸い出すには、-Pオプションを使います。
% sudo gphoto2 --port usb: --speed 115200 --camera stv0680 -P
Status: Initializing 'STV0680'...
ping ok
Status: Listing files in '/'...
STV: getting file count
GFI OK, count = 3
Files in /:
Status: Getting 'image01.pnm' from folder '/'...
Image is 644x484 (311696l bytes)
Read bytes!
Saving file as image01.pnm
Status: Getting 'image02.pnm' from folder '/'...
Image is 644x484 (311696l bytes)
Read bytes!
Saving file as image02.pnm
Status: Getting 'image03.pnm' from folder '/'...
Image is 644x484 (311696l bytes)
Read bytes!
Saving file as image03.pnm
これで、3枚の画像が、カレントディレクトリに保存されました。
% ls
image01.pnm image02.pnm image03.pnm
-pオプションを使うと、指定した画像だけ吸い出すことができます。
デジカメ内の画像を消去してみる
デジカメの中に記録されている画像を全て消去するには、-Dオプションを使います。
-dオプションで、指定した画像だけ消去できます。
画像補正をする
che-ez!シリーズのCCDカメラで取れる画像は、結構色が片寄っていたり画像自体も荒いのです。
che-ez!シリーズに付属の画像転送ソフトはそこらへんの画像補正もやってくれています。
gphoto2でも、ある程度の補正はかけてくれますが色の補正が甘いようなので、吸いだしたあとに補正をかけてやると良いでしょう。
gimpを使った方法
gimp を使って、画像補正をします。ただし、大量にある場合にGUIで操作するのは大変なので、script-Fuを書いてそれをバッチで処理しましょう。
以下のScript-Fu を、~/.gimp-1.2/scripts/以下に、auto-sharpen.scmというファイル名で保存しておきます。
(define (auto-sharpen iFilename oFilename)
(set! img (car (gimp-file-load 0 iFilename iFilename)))
(set! drawable (car (gimp-image-active-drawable img)))
(plug-in-sharpen 1 img drawable 50)
(gimp-hue-saturation drawable 0 -6 50 -25)
(file-pnm-save 1 img drawable oFilename oFilename 1))
あとは、コマンドラインで、以下のように gimp を起動すると、画像処理を施して終了します。
% gimp -i -b '(auto-sharpen "input.pnm" "output.pnm")' '(gimp-quit 0)'
batch command: executed successfully.
画像の比較
それぞれの画像を比較してみます。
(WEBに張るために JPEGに変換してあります。)
Windows
まず、Windowsで吸い出したものが、これです。
gphoto2
次に、gphoto2で吸い出したものが、これ。
gphoto2 + gimpフィルタ
最後に、gphoto2で吸い出したものに、前述のgimpによる画像処理を施したものが、これ。
Yukimitsu Izawa
Last modified: Mon Nov 19 09:49:23 JST 2001