Хорошо, я не понимаю, как TempFrame (ваш передний план) может быть серого, если вы используете вычитание фона. Вы должны использовать очень специальный алгоритм. Но если предположить, что TempFrame имеет оттенки серого, то вы сделаете следующее:
cv::Mat mask = tempFrame > 0.5;
cv::Mat outFrame;
capturedFrame.copyTo(outFrame, mask);
Это код OpenCV 2.0 выше. Число 0,5 является порогом, вам нужно установить его на что-то подходящее. Если вы не используете изображения с плавающей точкой, вы, вероятно, установите его на 128 или что-то подобное. Это то же самое в коде OpenCV 1.1:
CvMat* mask = cvCreateMat(tempFrame.rows, tempFrame.cols, CV_8UC1);
cvCmpS(tempFrame, 0.5, mask);
CvMat* outFrame = cvCreateMat(capturedFrame.rows, capturedFrames.cols, CV_32FC3);
cvCopy(capturedFrame, outFrame, mask);