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; }
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); }