hobbyware

[프로세싱] video 라이브러리를 통해 카메라 이용 (3) computer vision

develop/processing




/* 소스코드 시작 */


import processing.video.* ;

Capture video ; 

PImage prevFrame ; 

float threshold = 50 ; 

void setup( ) {

  size(640, 480) ;

  video = new Capture(this, width, height, 30) ;

  prevFrame = createImage(video.width, video.height, RGB); 

  video.start( ) ;

}

void draw( ) {

  if (video.available( )) {

    prevFrame.copy(video, 0, 0, video.width, video.height, 0, 0, video.width, video.height);

    prevFrame.updatePixels( ) ; 

    video.read( ) ;

  }

  loadPixels( ) ; 

  video.loadPixels( ) ; 

  prevFrame.loadPixels( ) ; 

  for (int x = 0; x < video.width; x ++ ) {

    for (int y = 0; y < video.height; y ++ ) {

      int loc = x + y*video.width ;

      color current = video.pixels[loc] ;

      color previous = prevFrame.pixels[loc] ;

      float r1 = red(current) ; 

      float g1 = green(current) ; 

      float b1 = blue(current) ; 

      float r2 = red(previous) ; 

      float g2 = green(previous) ; 

      float b2 = blue(previous) ; 

      float diff = dist(r1, g1, b1, r2, g2, b2) ;

      if (diff > threshold) pixels[loc] = color(0) ; 

      else pixels[loc] = color(255) ;

    }

  }

  updatePixels( ) ;

}



/* 소스코드 끝 */

[프로세싱] video 라이브러리를 통해 카메라 이용 (1)

develop/processing




/* 소스코드 시작 */


import processing.video.*;

Capture video;

void setup()

{

  size(640, 480);

  video = new Capture(this, 640, 480, 30);

  video.start();

}


void draw()

{

  if (video.available())

  {

    video.read();

  }

  image(video, 0, 0);

}



/* 소스코드 끝 */





image(video, 0, 0); 라인을


image(video, 0, 0, mouseX, mouseY);로 바꿔 주면


마우스의 좌표에 따라 그림 사이즈가 달라진다