Tampilkan postingan dengan label Video Processing. Tampilkan semua postingan
Tampilkan postingan dengan label Video Processing. Tampilkan semua postingan

Rabu, 24 Februari 2016

Pemrograman Processing 2.2.1 untuk Pendeteksian Objek Berwarna (Real Time Colour Tracking Object)



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.

Share:
Read More

Membuat Preview Video dari Webcam Menggunakan Software Processing 2.2.1 (Processing 3.0.1)




 Dalam robot vision, webcam memiliki peran yang sangat utama. Webcam berfungsi sebagai sensor yang dapat memonitor lingkungan dengan sangat detail, selain itu webcam juga dapat digunakan secara realtime. Untuk dapat mengakses webcam dan mengolah data webcam secara real time dapat digunakan Processing 2.2.1. Untuk mulai bekerja secara real time, USB webcam harus terkoneksi dan terinstal terlebih dahulu pada PC atau Laptop.  Berikut adalah program untuk menampilkan preview dari webcam:

import processing.video.*;

Capture cam;

void setup() {
  size(640, 480);

  String[] cameras = Capture.list();

  if (cameras == null) {
    println("Gagal untuk mendeteksi kamera, akan dicoba lagi...");
    cam = new Capture(this, 640, 480);
  } if (cameras.length == 0) {
    println("Tidak Ada Kamera.");
    exit();
  } else {
    println("Kamera Siap:");
    for (int i = 0; i < cameras.length; i++) {
      println(cameras[i]);
    }
    cam = new Capture(this, cameras[0]);  
    cam.start();
  }
}

void draw() {
  if (cam.available() == true) {
    cam.read();
  }
  image(cam, 0, 0);
}

Maka akan muncul video preview seperti hasil berikut ini:

Gambar 1 Video preview real time

Share:
Read More