フォアグラウンドまたはバックグラウンドでシーンがどれだけ動いているかを示す数値が必要です。
ありがとう!
最も簡単な方法は次のとおりです。
Mat currentFrame, lastFrame, diff;
absdiff( currentFrame, lastFrame, diff );
float n = norm(diff, CV_NORM_L2);
lastFrame = currentFrame.clone();
ここで、n はこのフレームと最後のフレームの差の尺度です
オプティカル フローが必要な場合もあります。これにより、ピクセルごとの移動ベクトルが得られます。
// convert to grayscale before ..
//
Mat flow;
calcOpticalFlowFarneback(prevgray, gray, flow, 0.5, 3, 15, 3, 5, 1.2, 0);
//
// flow is a CV_32FC2 matrix, each "pixel" is a Point2f with x,y being the motion gradient for that
位置
(そのためのデモもあります)