proce55ing/retinaImage and differenceImage and adaptivity

Last-modified: 2007-01-19 (金) 13:59:17

What this?

  • JMyronライブラリのretinaImage(), differenceImage(), adaptivity(int value), adapt(), あたりの関数が理解しにくいかったので、サンプルを組んでみました。
  • キーボードからadaptivityを変えれるようにしてありますので、適当に弄りながら、だいたいの感覚をつかんでください。
    • a : adaptivity を1上げる
    • z : adaptivity を1下げる

ScreenShots

  • 上が retinaImage() で、下が differenceImage() です。
  • adaptibity(20) だとこんな感じ
    2007.01.19-1.jpg

  • adaptibity(5) だとこんな感じ
    2007.01.19-2.jpg

Downloads


Codes

fileretinaImage_and_differenceImage.txt
import JMyron.*; 
JMyron jmyron; //

int adaptivity = 10;
//?L???v?`???T?C?Y
int capture_size_x = 320;
int capture_size_y = 240;

void setup()
{
  //???????\ヲ???????????{?m????
  size(capture_size_x, capture_size_y*2); 
  //?J??????I?u?W?F?N?g??
  //?V???C???X?^???X????
  jmyron = new JMyron();
  //?L???v?`???J? 
  jmyron.start(capture_size_x, capture_size_y);
  //?????daptivity??Z?b?g
  ChangeAdaptivity(adaptivity);
  println("Myron " + jmyron.version());
}

// ============================================================
// adaptivity??value ???????
// ============================================================
void ChangeAdaptivity(int value)
{
  // value ??adaptivity ??Z?b?g
  jmyron.adaptivity(value);
  jmyron.adapt();
  //????daptivity??\ヲ???
  println("Change adaptivity : " + adaptivity);
}

// ============================================================
// ?L?[??????????
// ============================================================
void KeyProcess()
{
  if(keyPressed) {
    switch(key){
      case 'a':  //a??????daptivity?????
        ChangeAdaptivity(++adaptivity);
        break;
      case 'z':  //z??????daptivity??????
        ChangeAdaptivity(--adaptivity);
        break;
      default:  //????O????
        break;
    }
  }
  if(adaptivity < 0) {  // adaptivity ??O??????????O????
    adaptivity = 0;
    ChangeAdaptivity(adaptivity);
  }
}

// ============================================================
// ???C?????[?v
// ============================================================
void draw()
{ 
  //?J?????f????A?b?v?f?[?g 
  jmyron.update(); 
  //???????
  int[] retina_image = jmyron.retinaImage(); 
  int[] difference_image = jmyron.differenceImage(); 
  //?\ヲ????s?N?Z???z?????[?h 
  loadPixels();
  for(int i=0; i<capture_size_x*capture_size_y; i++) {
    //?????R?s?[
    pixels[i] = retina_image[i];
    // retina_image ??????????A????R?s?[
    pixels[i+capture_size_x*capture_size_y] = difference_image[i];
  }
  //?L?[??
  KeyProcess();
  //?\ヲ????s?N?Z???z???X?V 
  updatePixels(); 
}

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