Processingでカメラからの映像を編集してみた。

最近プログラムができるようになりたい!と思っていまして。
Pythonを勉強しつつ、奥さんに自慢できないとつまらんなってことでProcessingもいじりはじめました。
で、本に書いてあるやつを試してみたのがこれ。

何をやっているかというと、PCのカメラで読み込んだ映像からピクセル単位で色、彩度、輝度を取り出して、それらの数値から円の図形に変換するやつ。
本をまんま写しただけだけど、何かを作った気になれて、奥さんにも自慢できてやりがいがある。
しかも内容はこれだけ。


import processing.video.*;

Capture Camera;
void setup(){
  size(800, 500);
  colorMode(HSB, 256); 
  noFill();
  strokeWeight(2);
  Camera = new Capture(this, width, height, 12);
}

void draw() {
  background(0);
  Camera.loadPixels();
  for(int y=0 ; y < height ; y+=10) {
    for(int x=0 ; x < width ; x+=10) {
      int pos = (y * width) + x;
      color c = Camera.pixels[pos];
      float h = hue(c);
      float s = saturation(c);
      float b = 20 * brightness(c) / 256;
      stroke(h, s, 256);
      ellipse(x, y, b, b);
    }
  }
}

void captureEvent(Capture camera) {
  camera.read();
}

これのMac用アプリ
Windowsではカメラ周りは色々やらないといけないらしく、自分の環境ではできなかったから公開できず断念。

MITの新しいVIもレディヘのPVも(再生後ぐりんぐりんできます)Processingが使われているとか。

フライトパターンをシミュレートしたやつが有名らしい。

きれいだなぁ。

ちなみに勉強している本はこれです。

Built with Processing[Ver. 1.x対応版] -デザイン/アートのためのプログラミング入門
田中 孝太郎 前川 峻志
ビー・エヌ・エヌ新社
売り上げランキング: 12137

関連するエントリーのリンクを見てみたら、実は2009年にもすでに本を買ってちょいちょいやっていたっていうね・・・。
今度こそ!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です