...
Code Block |
---|
|
import processing.video.*;
Capture video; |
Im In der setup()
initialisieren Funktion initialisieren wir die Library und starten die Aufnahme:
Code Block |
---|
|
video = new Capture(this, width, height, 30);
video.start(); |
Im In der draw()
fragen Fuktion fragen wir ab, ob ein neuer Frame neues Bild vorhanden ist und lesen diesen dieses dann ein:
Code Block |
---|
|
if (video.available()) {
video.read();
} |
...
Code Block |
---|
|
image(video, 0, 0); |
Folgend das komplette Processing-Sketch:
Code Block |
---|
title | Beispiel |
---|
collapse | true |
---|
|
import processing.video.*;
Capture video;
void setup() {
size(640, 480);
video = new Capture(this, width, height, 30);
video.start();
}
void draw() {
if (video.available()) {
video.read();
}
image(video, 0, 0);
} |
...
Grundsätzlich lassen sich alle Filter und Effekte, welche wir auf statische Bilder angewendet haben auch auf Video-Sourcen anwenden.
Pixelate
Das folgende Beispiel verwendet den den "Pixelate" filter um das Video grober aufzulösen:
Code Block |
---|
title | Beispiel |
---|
collapse | true |
---|
|
import processing.video.*;
Capture video;
int pixelSize = 20;
void setup() {
size(640, 480);
video = new Capture(this, width, height, 30);
video.start();
}
void draw() {
if (video.available()) {
video.read();
}
for(int x=0; x<width; x+=pixelSize) {
for(int y=0; y<height; y+=pixelSize) {
int loc = x+y*width;
color c = video.pixels[loc];
fill(c);
noStroke();
rect(x, y, pixelSize, pixelSize);
}
}
} |
Threshold
Das folgende Beispiel arbeitet mit einem Grenzwert und zeigt die Pixel entweder Schwarz oder Weiss dar:
...
Je nach Anwendung kann es von Vorteil sein, wenn man das Bild spiegelt. Vor allem bei Interaktionen vor einem Bildschirm macht dies Sinn. Im Beispiel “P04_4_Video_Kamerabild_spiegeln” ist gezeigt wie es geht. Im Prinzip drehen wir das komplette Video horizontal um 180°. Dies machen wir mit:
Code Block |
---|
|
pushMatrix();
scale(-1,1);
image(video, -width, 0);
popMatrix(); |
Code Block |
---|
title | Beispiel |
---|
collapse | true |
---|
|
import processing.video.*;
Capture video;
void setup() {
size(640, 480);
video = new Capture(this, width, height, 30);
video.start();
}
void draw()
{
if (video.available())
{
video.read();
}
pushMatrix();
scale(-1,1);
image(video, -width, 0);
popMatrix();
} |
...