カメラ入力に注意!

OpenCVを使っていて、カメラから前景と背景を取得して表示しようとしたとき、同じ画像が表示されてしまう
それを解決してみた

#include "opencv2\\opencv.hpp"

int main(void){
	cv::Mat back, fore; // 背景、前景
	cv::VideoCapture vc(0); // カメラ入力
	vc >> back;
	// 背景画像表示
	cv::imshow("back", back);
	cv::waitKey(0);
	vc >> fore;
	cv::imshow("foreground", fore);
	cv::imshow("background", back);
	cv::waitKey(0);
	return 0;
}

の場合、以下のような出力になる


次に改善したソース

#include "opencv2\\opencv.hpp"

int main(void){
	cv::Mat back, fore; // 背景、前景
	cv::VideoCapture vc(0); // カメラ入力
	vc >> back;
	// 背景画像表示
	cv::imshow("back", back);
	cv::waitKey(0);
	cv::Mat tmp = back.clone();
	vc >> fore;
	cv::imshow("foreground", fore);
	cv::imshow("background", tmp);
	cv::waitKey(0);
	return 0;
}

出力は以下のようになる

背景画像を複製しておくことで解決