コード例 #1
0
ファイル: NiCRead.c プロジェクト: jgollub/MetaImagerProj
int main()
{
	XnStatus nRetVal = XN_STATUS_OK;
	XnContext* pContext;
	XnEnumerationErrors* pErrors;
	XnNodeHandle hDepth;
	XnDepthMetaData* pDepthMD;
	const XnDepthPixel* pDepthMap;
	XnDepthPixel middlePoint;

	nRetVal = xnEnumerationErrorsAllocate(&pErrors);
	CHECK_RC(nRetVal, "Allocate errors object");

	nRetVal = xnInitFromXmlFile(SAMPLE_XML_PATH, &pContext, pErrors);
	CHECK_RC(nRetVal, "Init context");

	if (nRetVal == XN_STATUS_NO_NODE_PRESENT)
	{
		XnChar strError[1024];
		xnEnumerationErrorsToString(pErrors, strError, 1024);
		printf("%s\n", strError);
		return (nRetVal);
	}
	else if (nRetVal != XN_STATUS_OK)
	{
		printf("Open failed: %s\n", xnGetStatusString(nRetVal));
		return (nRetVal);
	}

	nRetVal = xnFindExistingNodeByType(pContext, XN_NODE_TYPE_DEPTH, &hDepth);
	CHECK_RC(nRetVal, "Find depth generator");

	pDepthMD = xnAllocateDepthMetaData();
	
	while (!xnOSWasKeyboardHit())
	{
		nRetVal = xnWaitOneUpdateAll(pContext, hDepth);
		if (nRetVal != XN_STATUS_OK)
		{
			printf("UpdateData failed: %s\n", xnGetStatusString(nRetVal));
			continue;
		}

		xnGetDepthMetaData(hDepth, pDepthMD);
		pDepthMap = pDepthMD->pData;
		middlePoint = pDepthMap[pDepthMD->pMap->Res.X * pDepthMD->pMap->Res.Y/2 + pDepthMD->pMap->Res.X/2];

		printf("Frame %d Middle point is: %u\n", pDepthMD->pMap->pOutput->nFrameID, middlePoint);
	}

	xnShutdown(pContext);

	return 0;
}
コード例 #2
0
ファイル: easykinect.cpp プロジェクト: fpalero/easykinect
void knt_Stop(kinect_t *k){
     XnStatus nRetVal = XN_STATUS_OK;
     
     nRetVal = xnStopGeneratingAll(k->pContext);
     
     if(nRetVal != XN_STATUS_OK){
      printf("Error parando nodo de IR: %s\n",xnGetStatusString(nRetVal));
     }
     
      xnShutdown(k->pContext);
}