後輩がProcessingとOpenCVで背景差分を取りたいと言っていたので、そのプログラムをつくりました。

[code lang=java]
import hypermedia.video.*;

OpenCV opencv; //OpenCVのオブジェクトです。
PImage binImage; // これが最終目標(変わった部分が白、変わらなかった部分が黒の二値画像)
boolean bLearnBgImage = true; // 背景画像を撮るフラグ

void setup(){
size(640, 480);
opencv = new OpenCV(this);
opencv.capture(width, height);
}

void draw(){
opencv.read(); // カメラから画像を取得
opencv.flip(OpenCV.FLIP_HORIZONTAL); // 鏡写しにする

if(bLearnBgImage){ // 背景撮るなら
opencv.remember(OpenCV.SOURCE, OpenCV.FLIP_HORIZONTAL); // メモリーに画像を保存
bLearnBgImage = false; // flagを切る。
}

opencv.absDiff();// 背景画像と今の画像の差の絶対値をとる
opencv.convert(OpenCV.GRAY); // グレイスケールに変換
opencv.blur(OpenCV.BLUR, 5); // ノイズを消すためにぼかす
opencv.threshold(30); // スレッショルドを指定
binImage = opencv.image(); // 最終目標!!!

image(binImage, 0, 0); //表示
}

void keyPressed(){
if(key == ' '){ // スペースキーが押されたら
bLearnBgImage = true; // 背景を撮る
}
}
[/code]

 一応、目標は達成できましたが、今ひとつ、ProcessingのOpenCVの仕様がよく分からなかったのでまた勉強します。