[gcc/linux/alpha] [証券会社で遊ぼう] [メルセンヌ素数] [永遠の「bit 1985年4月号」] [netnewsを読む] [Twingoに乗ろう] [バイクに乗っていた頃] [俺たちのサーキット] [業界悪魔の辞典] [UUCPやろうぜ] [一太郎やーい] [動け!コンピュータ] [琴電讃岐うどんの旅] [2002年11月16日のFUJIC] [Bnews forever] [流し撮りMotoGP] [TC-16AS] [Nikon DSLR on Unix] [のら猫] [56 game hitting streak] [分散コンピューティングは死んだか] [Post-it] [SIGPS] [Google Log] [大部屋俳優] [沖縄 2004] [沖縄 2008] [2008/9/11,12,13 reno air race] [リノ エアレースへ行こう] [Other Links]
ウエブカメラについて
 安価に市販されている usb接続のCMOSウェブカメラは 室内で人物などを撮影するのを目的にされている ので、日中の空を撮影すると露出オーバーとなって しまって像が得られないようです。戸外でも撮影 範囲に空が含まれていなければ大丈夫なようです。 逆に暗い被写体には強いので夜間の空を撮影できる かもしれません。 空を撮影するにはデジタルカメラで usb 接続で コントロール可能なものが良いようです。 (freebsd で利用可能なものがあるかは不明)

朝夕の空は撮影できる。


CCDのウェブカメラでは こちらのサイト でライブカメラをされています。
freebsd で usb 接続の webcam を使う
使ったカメラは、Creative Labs のWEBCAM PLUS。
vid では、OmniVision OV511+ という chip を使ったカメラが使えるようだ。

webcam は、usb 接続するだけで認識される。

kernelの messeage は、

/kernel: ugen0: OmniVision OV511+ Camera, rev 1.00/1.00, addr 2

vid を ports/graphics/vid からインストールする。

/usr/local/bin/vid --device-name=/dev/ugen0 > out.pnm

で、pnm という形式で画像が撮影される。サイズは 640x480。
--small オプションで 320x240 の画像になる。

明るい部分があると撮影毎に露出が不安定で何回かに1回しか綺麗な画像が
得られない。(室内など暗い方は得意だが、ライブカメラなのに空がだめ)

OmniVision OV511+ Cameraを参考に
コードを追加した。

次に pnm の画像を変換するために ports/graphics/netpbm を
インストールする。

pnmscale -xysize 320 240 < in.pnm > out.pnm

でサイズの変更ができる。vid に --small を指定するよりも
良い画像が得られる。

pnmcut -left 320 < in.pnm > out.pnm

で左320dot目からの画像が得られる。

pnmtojpeg < in.pnm > out.jpg

で jpg に変換される。

pamarith -add | -subtract | -multiply | -difference | -minimum | -maximum | -mean | -compare pnmfile1 pnmfile2

マニュアル

ライブカメラには タイムスタンプ がつきものなので、
pnm にテキストを挿入できる ports/graphics/ppmcaption をインストールする。
jpg の場合は、

djpeg in.jpg | \
ppmcaption - - -font helvO14.bdf -scale 0.7 -blur 3 -fg black -bg white  \
-pos -10,-10 -right -text '%a, %d-%b-%Y %l:%M:%S %p %Z' |  \
cjpeg > out.jpg

で 右下隅に 時刻が入る。

gif アニメを作るために ports/graphics/whirlgif をインストールする。

djpeg -gif in.jpg > out.gif

で gif に変換される。

whirlgif -loop 10 -time 20 in*.gif > out.gif

で in*.gif から 0.2 秒ごとにコマが変わり 10回ループする
アニメーション gif が作られる。

mpeg ファイルを作成するには

$ppmtompeg param

$cat param 
PATTERN         IBBPBBPBBPBBPBB
OUTPUT          ./flowgard.mpg
GOP_SIZE        3
SLICES_PER_FRAME        1
BASE_FILE_FORMAT        JPEG
YUV_SIZE        320x240
INPUT_CONVERT   *
INPUT_DIR       ./
INPUT
webcam.*.jpg    [10-99]
END_INPUT
IQSCALE         8
PQSCALE         10
BQSCALE         25
PIXEL           HALF
RANGE           10
PSEARCH_ALG     LOGARITHMIC
BSEARCH_ALG     CROSS2
REFERENCE_FRAME DECODED

この方法では、フレームレート(1秒間のコマ数)がちゃんと設定されない
ようだ。速まわしになってしまう。

$mpeg_encode param

$cat param 
PATTERN           IBPBIBPBPB  
GOP_SIZE          10          
SLICES_PER_FRAME  1           
PIXEL             HALF        
RANGE             8           
PSEARCH_ALG       LOGARITHMIC 
BSEARCH_ALG       SIMPLE      
IQSCALE           8           
PQSCALE           10          
BQSCALE           25          
FRAME_RATE        30     
REFERENCE_FRAME   ORIGINAL    
YUV_SIZE          640x480 
OUTPUT            webcam.mpg
BASE_FILE_FORMAT  PPM         
INPUT_CONVERT     /usr/local/bin/djpeg *
INPUT_DIR         /tmp/webcam
INPUT 
webcam.*.jpg [00-99] 
END_INPUT 

作成した画像

この方法ではフレームレートが設定される。(それでも毎秒30フレーム
だけど。これはmpegの仕様だからしょうがない)

別なカメラalphacam plusも動作した。
テクノハウス東映で、2003年9月に購入。
WEBCAM PLUSより画像はかなり鮮明だが戸外のような明るい対象が苦手なのは同じ。

OV511+ data sheet
OV7620 data sheet
OV511 Downloads
alphacam Downloads