【Processing】Open CVを使ってみる(1)動体検知とピクセル情報取得


youtu.be


Open CVを使う機会があったので。
動体検知はおもしろいなあ。


import gab.opencv.*;
import processing.video.*;

Capture camera; //カメラを使う
OpenCV opencv; //オープンCVを宣言

void setup() {
  // 画面サイズ
  size(1280, 720);
  // 動画の読み込み
  camera = new Capture(this, width, height);  
  opencv = new OpenCV(this, width, height);
  // 背景差分の初期設定
  opencv.startBackgroundSubtraction(5, 3, 0.1);
  camera.start();  //キャプチャを開始
  background(0);
}

void draw() {
  //image(camera, 0, 0);  カメラキャプチャしているが、その映像はそのままは表示しない

  opencv.loadImage(camera);
  // 背景データの更新
  opencv.updateBackground();
  opencv.dilate();
  opencv.erode();


  strokeWeight(1);
  for (Contour contour : opencv.findContours()) {
    for (PVector point : contour.getPoints()) {
      stroke(camera.get((int)point.x, (int)point.y));      
      line(point.x, point.y,width/2, point.y);
      //line(point.x, point.y, width/2,height/2);
    }
  }
}

//キャプチャイベント
void captureEvent(Capture camera) {
  camera.read();
}