Version 1 (modified by obina, 10 years ago) (diff) |
---|
USカメラの接続
- PCにUSBカメラを接続。ノートPCの場合は内臓カメラでもOK
- カメラのリストをチェックするため、以下のプログラムを入力してsketch_140807bとして保存。
import processing.video.*; Capture cam; void setup() { size(640, 480, P3D); String[] cameras = Capture.list(); for (int i=0; i<cameras.length; i++) { println(i, cameras[i]); } } void draw() { }
- 実行例(ここで使っているのは会議用の広角USBカメラ Buffalo BSW20KM11)
- コードを書いたウィンドウの下にある出力画面に以下の表示が出る
0 name=USB_Camera,size=640x480,fps=30 1 name=USB_Camera,size=160x120,fps=30 2 name=USB_Camera,size=176x144,fps=30 3 name=USB_Camera,size=320x240,fps=30 4 name=USB_Camera,size=352x288,fps=30 5 name=USB_Camera,size=800x600,fps=10 6 name=USB_Camera,size=1280x720,fps=8 7 name=USB_Camera,size=1920x1080,fps=5 8 name=USB_Camera,size=640x480,fps=30 9 name=USB_Camera,size=160x120,fps=30 10 name=USB_Camera,size=176x144,fps=30 11 name=USB_Camera,size=320x240,fps=30 12 name=USB_Camera,size=352x288,fps=30 13 name=USB_Camera,size=800x600,fps=30 14 name=USB_Camera,size=1280x720,fps=30 15 name=USB_Camera,size=1920x1080,fps=30
- これをみると、640x480, fps=30 が適当なのでカメラ番号 0 が良さそう。これを使って画像取り込み、表示をおこなう。
- ファイルを以下のように変更して実行
import processing.video.*; Capture cam; void setup() { size(640, 480, P3D); String[] cameras = Capture.list(); cam = new Capture(this, cameras[0]); // select cam 0 cam.start(); // start camera } void draw() { background(0); // clear (black) backgound cam.read(); // read camera image image(cam, 0, 0); // show camera image }
- 実行結果:ちゃんと動画が表示できている
- cam 0 .. 12 までの解像度・fpsでは問題なく表示できているが、 cam13,14,15については黒色のまま何も表示されない
- 当面は問題ないが、せっかくハードが 1920x1080 30fps 対応しているなら表示したい