namedWindow("colorImage", CV_WINDOW_AUTOSIZE);
namedWindow("depthImage", CV_WINDOW_AUTOSIZE);
namedWindow("skeletonImage", CV_WINDOW_AUTOSIZE);
while (1)
{
if(WaitForSingleObject(colorEvent, 0)==0)
getColorImage(colorEvent, colorStreamHandle, colorImage);
if(WaitForSingleObject(depthEvent, 0)==0)
getDepthImage(depthEvent, depthStreamHandle, depthImage);
if(WaitForSingleObject(skeletonEvent, INFINITE)==0)
getSkeletonImage(skeletonEvent, skeletonImage, colorImage, depthImage);
for (int i=0; i<6; i++)
{
if(tracked[i] == TRUE)
{
mask.setTo(0);
getTheContour(depthImage, i, mask);
tracked[i] = FALSE;
break;
}
}
imshow("mask", mask);
imshow("colorImage", colorImage);
imshow("depthImage", depthImage);
imshow("skeletonImage", skeletonImage);
if(cvWaitKey(1)==27)
break;
}
NuiShutdown();
return 0;
}
void getColorImage(HANDLE &colorEvent, HANDLE &colorStreamHandle, Mat &colorImage)
{
const NUI_IMAGE_FRAME *colorFrame = NULL;