OpenNI 1.5::Could not run code from documentation

落花浮王杯 提交于 2019-12-11 14:57:44

问题


I am trying to run a sample code from the OpenNI 1.5 documentation.I have imported the library required XnCppWrapper.h so that I can use C++.The code has only one error on a particular variable "bshouldrun".I know that it should be declared as something but since I am new at this and the documentation does not contain anything above the main, I dont know what to declare it as..Please help!! And thanks in advance.

 #include <XnOpenNI.h>
 #include <XnCppWrapper.h>
 #include <stdio.h>

int main()
  {

    XnStatus nRetVal = XN_STATUS_OK;

    xn::Context context;

   // Initialize context object
   nRetVal = context.Init();
   // TODO: check error code

   // Create a DepthGenerator node
   xn::DepthGenerator depth;
   nRetVal = depth.Create(context);
   // TODO: check error code

   // Make it start generating data
   nRetVal = context.StartGeneratingAll();
   // TODO: check error code

   // Main loop
   while (bShouldRun) //<-----------------------------**ERROR;bShouldRun Undefined**
   {
       // Wait for new data to be available
       nRetVal = context.WaitOneUpdateAll(depth);
       if (nRetVal != XN_STATUS_OK)
      {
          printf("Failed updating data: %s\n", xnGetStatusString(nRetVal));
          continue;
      }

       // Take current depth map
       const XnDepthPixel* pDepthMap = depth.GetDepthMap();

       // TODO: process depth map
   }

   // Clean-up
   context.Shutdown();

   }

回答1:


Here's what I did to run a sample from Visual Studio 2010 Express on Windows (8):

  1. Opened the NiSimpleViewer.vcxproj VS2010 project from C:\Program Files (x86)\OpenNI\Samples\NiSimpleViewer
  2. Edited OpenNI.rc to comment out #include "afxres.h" on line 10(might be missing this because I'm using Express version, not sure. Your machine might compile this fine/not complain about the missing header file)
  3. Enabled Tools > Options > Debugging > Symbols > Microsoft Symbol Servers (to get past missing pdb files issue)
  4. Optionally edit the SAMPLE_XML_PATH to "SamplesConfig.xml" rather than the default "../../../Data/SamplesConfig.xml", otherwise you need to run the sample executable from ..\Bin\Debug\NiSimpleViewer.exe by navigating to there rather than using the Ctrl+F5. A;so copy the SamplesConfig.xml file into your sample folder as you can see bellow

Here are a few images to illustrate some of the above steps:

You can also compile the NiHandTracker sample, which sounds closer to what you need. So this explains the setup for OpenNI 1.5 which is what your question is about.

I've noticed your OpenNI 2 lib issue in the comments. It should be a matter of linking against SimpleHandTracker.lib which you can do via Project Properties (right-click project->select Properties) > Linker > Input > Additional Dependencies > Edit.

I don't have OpenNI2 setup on this machine, but assuming SimpleHandTracker.lib would be in OpenNI_INSTALL_FOLDER\Lib. Try a file search in case I might be wrong.

来源:https://stackoverflow.com/questions/17252653/openni-1-5could-not-run-code-from-documentation

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!