Buku Augmented Reality With ARToolkit

Buku Augmented Reality With ARToolkit
Dapatkan Segera

Leave Comment


ShoutMix chat widget

Wednesday, July 18, 2012

Pemograman: Image Processing Manipulation with Java Processing and JMRyon - Motion Detection

Hello guys, Selamat datang di A.R.T setelah tutorial sebelumnya kita belajar Instalasi JMRyon dan belajar Manipulasi Pixel. sekarang kita coba belajar membangun Motion Detection dengan JMRyon. kedengarannya memang sedikit rumit, tapi sebenarnya mudah. 

konsep dari Motion Detection ini adalah dengan melakukan pelacakan terhadap GLOB Processing, yang merupakan library untuk melakukan pencocokan terhadap pola. pada kasus kita sekarang, kita ingin melakukan pencocokan terhadap pixel warna, dengan menganalisis satu pixel ke pixel lainnya, kelihatannya memang sulit, tapi sebenarnya mudah. 

yang cukup kita lakukan adalah, mengaktifkan library JMyron.findGlobs dan menyempurnakan pencarian dengan JMyron.minDensity (int val) dan JMyron.maxDensity (int val) (yang keduanya mengambil piksel-dianggap sebagai input). 

oke, daripada kelaamaan di teory, silahkan ngeCoding dengan Source Code dibawah ini:

import JMyron.*;

JMyron theMov;
int[][] globArray;

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

  theMov = new JMyron();
  theMov.start(width, height);
  theMov.findGlobs(1);
  theMov.trackColor(255, 255, 255, 255);

  stroke(255, 0, 0);  // red outline
}

void draw() {
  theMov.update();
  int[] currFrame = theMov.image();

  // draw each pixel to the screen
  loadPixels();
  for (int i = 0; i < width*height; i++) {
    pixels[i] = currFrame[i];
  }
  updatePixels();

  // draw the glob bounding boxes
  globArray = theMov.globBoxes();
  for(int i = 0; i < globArray.length; i++) {
    int[] boxArray = globArray[i];

    // set the fill colour to the average of all colours in the bounding box
    int currColor = theMov.average(
      boxArray[0], 
      boxArray[1], 
      boxArray[0] + boxArray[2], 
      boxArray[1] + boxArray[3]);
    fill(red(currColor), green(currColor), blue(currColor));

    rect(boxArray[0], boxArray[1], boxArray[2], boxArray[3]);
  }
}

public void stop() {
  theMov.stop();
  super.stop();
}


dari contoh diatas, kita membuat sebuah Bounding Box (Satu Kesatuan Box) diantara banyak Globs. anda bisa melihatnya diantara box yang besar dengan box yang kecil. warna utama dari Bounding Box, dalam hal ini warna abu-abu, akan menjadi warna keseluruhan untuk Pixel. coba anda arahkan tangan anda seperti gambar dibawah, maka pixel terpecah dan rata-rata warna masih tetap sama dengan Bounding Box.



bagaimana bisa terjadi? kita menggunakan tehnik JMyron.trackColor(int red, int green, int blue, int tolerance) untuk melakukan determinasi warna mana yang harus dicocokan oleh Globs. makanya saat anda mengarahkan tangan anda ke Bounding Box, Globs langsung memecah menjadi beberapa pixel, dan menyesuaikan dengan warna baru. bisa dilihat, ada pixel globs yang berwarna  abu-abu tua. itulah konsep dasar dari Motion Detection JMRyon. silahkan dipelajari Source Code diatas, selamat belajar dan semoga berhasil. 

1 komentar:

Saya senang sekali ada pihak yang mengembangkan blog ini,. blog ini sangat membantu & powerful buat saya karena kebetulan saya sedang menyusun Tugas Akhir yang berkaitan dengan Augmented reality,.

^^

maju terus & semoga page rank nya selalu meningkat setiap hari

Post a Comment

Twitter Delicious Facebook Digg Stumbleupon Favorites More