代码超级乱啊,以后有时间再整理了
#include <iostream> // for standard I/O
#include <string> // for strings
#include <iomanip> // for controlling float print precision
#include <sstream> // string to number conversion
#include <cmath>
#include <cstdlib>
#include <opencv2/imgproc/imgproc.hpp> // Gaussian Blur
#include <opencv2/core/core.hpp> // Basic OpenCV structures (cv::Mat, Scalar)
#include <opencv2/highgui/highgui.hpp> // OpenCV window I/O
using namespace cv;
using namespace std;
int main(int argc, char *argv[])
{
const std::string sourceReference = "test3.avi";
int delay = 500;
char c;
int frameNum = -1; // Frame counter
VideoCapture captRefrnc(0);
VideoCapture captRefrnc0(1);
if (!captRefrnc.isOpened())
{
return -1;
}
Size refS = Size((int)captRefrnc.get(CV_CAP_PROP_FRAME_WIDTH),
(int)captRefrnc.get(CV_CAP_PROP_FRAME_HEIGHT));
bool bHandFlag = false;
const char* WIN_SRC = "Source";
const char* WIN_RESULT = "Result";
const char* R_HAND = "R_HAND";
// Windows
namedWindow(WIN_SRC, CV_WINDOW_AUTOSIZE);
namedWindow(WIN_RESULT, CV_WINDOW_AUTOSIZE);
Mat frame; // 输入视频帧序列
Mat frameHSV; // hsv空间
Mat mask(frame.rows, frame.cols, CV_8UC1); // 2值掩膜
Mat dst(frame); // 输出图像
// Mat f