processingで複数のwebカメラを扱うコツに関する備忘録。
参考サイトは、ここ。
http://salmon2073.net/?p=82
感謝。
(あれれ?リンク切れ?)
まずはカメラの選定から。
カメラは何でもいいというわけではない。
かといってどれが使えるかは分からない。
繋いでは試す。
繋いでは試すの繰り返し。
まずは繋いでみて、下記コードを走らせる。
import processing.video.*;
Capture myCapture;
void setup() {
size(640, 480);
println(myCapture.list());
}
void draw() {
}
するとカメラの内部情報として、
name=が取得できる。
もしvirtualなんとかというnameがでてきてもそれは偽物。
もしnameがでてこなかったら使えない。
あるいはnameがフォント化けしていても使えない。
あと同じカメラは同じ名前になるので同時に使えない。
このように使える種類の違うカメラを二台用意する。
その二台のカメラをUSBに指すが、
二台をPCの違うUSBボードに指す(例えば、PCの前と後ろ)。
同じUSBボードは一応避ける(まあ、おまじないみたいなものです。必須ではないですの)。
で、下記コードを走らせる。
import processing.video.*;
Capture myCapture1;
Capture myCapture2;
void setup() {
size(640*2, 480);
myCapture1 = new Capture(this, 640, 480, "Logicool Webcam 500", 30);
myCapture2 = new Capture(this, 640, 480, "USB2.0 Camera", 30);
myCapture1.start();
myCapture2.start();
}
void draw() {
if (myCapture1.available() && myCapture2.available()) {
myCapture1.read();
myCapture2.read();
image(myCapture1, 0, 0);
image(myCapture2, 640, 0);
}
}
Logicool Webcam 500とUSB2.0 Cameraというのが今回のカメラの名前。名前のところを書き換えてね。
同じ趣旨のコードが上記サイトに掲載されているが、
一部コードミスがあるのでご注意です。
(あれれ?リンク切れ?)
これで二台の映像が走れば、わんわんっ!
お疲れ様でひた。
2014年12月26日
processingで複数のwebカメラを扱うコツ
posted by ikaninja at 16:42| Comment(0)
| processing