Dalam pembahasan postingan sebelumnya, telah dibahas pemrograman untuk mengakses webcam secara real time. Dalam postingan ini, dilakukan
pendeteksian warna secara real time
dengan memanfaatkan webcam PC/laptop
baik internal maupun eksternal.
Program Processing Deteksi Objek Berwarna Secara
Real Time
import processing.video.*;
Capture video;
color trackColor;
void setup() {
size(640, 480);
video = new Capture(this, width,
height);
video.start();
noStroke();
smooth();
}
void draw() {
if (video.available()) {
video.read();
}
video.loadPixels();
image(video,0,0);
float worldRecord = 500;
// koordinat X dan Y objek berwarna
int closestX = 0;
int closestY = 0;
// loop tiap piksel
for (int x = 0; x < video.width;
x ++ ) {
for (int y = 0; y <
video.height; y ++ ) {
int loc = x + y*video.width;
color currentColor =
video.pixels[loc];
float r1 = red(currentColor);
float g1 = green(currentColor);
float b1 = blue(currentColor);
float r2 = red(trackColor);
float g2 = green(trackColor);
float b2 = blue(trackColor);
// menggunakan euclidean
distance untuk membandingkan warna
float d =
dist(r1,g1,b1,r2,g2,b2);
if (d < worldRecord) {
worldRecord = d;
closestX = x;
closestY = y;
}
}
}
if (worldRecord < 10) {
fill(trackColor);
strokeWeight(4.0);
stroke(0);
ellipse(closestX,closestY,16,16);
}
}
void mousePressed() {
int loc = mouseX +
mouseY*video.width;
trackColor = video.pixels[loc];
}
(a) Merah
(b) Hijau
(c) Biru
Gambar 1 Output tracking warna secara real time saat warna tertentu di klik
Gambar diatas memperlihatkan bahwa saat warna tertentu
diklik, maka saat objek warna tersebut bergerak maka sistem akan terus
mengikutinya. Hal ini akan berguna saat kita akan membuat robot yang dapat
mendeteksi dan mengikuti objek berwarna tertentu.
0 komentar:
Posting Komentar