2013年9月6日金曜日

9/09の授業:Webカメラの演習

後期初回(9/09)は、Webカメラを用いた実験を行いたいと思います。
Processingのvideoライブラリをつかって、Webカメラをセンサとして利用する内容に発展していく予定です。
また必要に応じてArduinoとの連携を行います。

必要なもの:
・ノートパソコン
・Webカメラまたはパソコン内蔵カメラ
・Arduinoボード類一式




モザイク画像の表示:

import processing.video.*;

Capture cam;

int w=640; //画面幅
int h=480; //画面高さ
int s=10;   //モザイク1辺のサイズ

void setup() {
  size(w,h);
  cam = new Capture(this, w,h);
  cam.start();
 
  stroke(0); //モザイクの外形線の色
  //noStroke(); //外形線なしの場合
}

void draw() {
  if (cam.available() == true) {
    cam.read();
    for(int i=0; i<w*h;i++){
      if((i%w)%s==0 && (i/w)%s==0){
        fill(cam.pixels[i]);
        rect(i%w, i/w, s, s);
      }
    }
  }
}

変数sを変えれば、モザイクの細かさが変化します。
また、wとhを変えることで、表示サイズとカメラから取り込む画像サイズを変えることができます。
このプログラムでは、640×480画素数で読み込んでいる画像データを
if((i%w)%s==0 && (i/w)%s==0){...}
の条件文をつかって、iについては横を10個(変数sの値分)とばし、縦も10個とばしのピクセルの位置の色データだけをfill()に適用させてrect()で矩形(モザイクの1粒)を描かせています。

0 件のコメント:

コメントを投稿