Pergunta

I just installed OpenCV 2.4.7 with OpenNI and primesense Sensor as it can be seen in the following build information.

I have problems grabbing from a VideoCapture object. For instance, if I run the openni_capture example, I get "Can not grab images." but I get info about the depth and RGB cameras, so I think I'm getting the VideoCapture object properly opened, but by the time it tries to grab an image, the grab function returns 0.

I am using an Asus Xtion Pro Live and OpenNI and Sensor are working properly since I am able to run examples such as NiViewer.

I would appreciate some help with this problem.

Thank you!

General configuration for OpenCV 2.4.7 =====================================
  Version control:               unknown

  Platform:
    Host:                        Linux 3.5.0-47-generic x86_64
    CMake:                       2.8.9
    CMake generator:             Unix Makefiles
    CMake build tool:            /usr/bin/make
    Configuration:               Release

  C/C++:
    Built as dynamic libs?:      YES
    C++ Compiler:                /usr/bin/c++  (ver 4.7.2)
    C++ flags (Release):         -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -msse3 -ffunction-sections -O3 -DNDEBUG  -DNDEBUG
    C++ flags (Debug):           -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -msse3 -ffunction-sections -g  -O0 -DDEBUG -D_DEBUG -ggdb3
    C Compiler:                  /usr/bin/gcc
    C flags (Release):           -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -msse3 -ffunction-sections -O3 -DNDEBUG  -DNDEBUG
    C flags (Debug):             -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -msse3 -ffunction-sections -g  -O0 -DDEBUG -D_DEBUG -ggdb3
    Linker flags (Release):      
    Linker flags (Debug):        
    Precompiled headers:         YES

  OpenCV modules:
    To be built:                 core flann imgproc highgui features2d calib3d ml video legacy objdetect photo gpu ocl nonfree contrib java python stitching superres ts videostab
    Disabled:                    world
    Disabled by dependency:      -
    Unavailable:                 androidcamera

  GUI: 
    QT:                          NO
    GTK+ 2.x:                    YES (ver 2.24.13)
    GThread :                    YES (ver 2.34.1)
    GtkGlExt:                    NO
    OpenGL support:              NO

  Media I/O: 
    ZLib:                        /usr/lib/x86_64-linux-gnu/libz.so (ver 1.2.7)
    JPEG:                        libjpeg (ver 62)
    PNG:                         /usr/lib/x86_64-linux-gnu/libpng.so (ver 1.2.49)
    TIFF:                        /usr/lib/x86_64-linux-gnu/libtiff.so (ver 42 - 4.0.2)
    JPEG 2000:                   /usr/lib/x86_64-linux-gnu/libjasper.so (ver 1.900.1)
    OpenEXR:                     build (ver 1.7.1)

  Video I/O:
    DC1394 1.x:                  NO
    DC1394 2.x:                  YES (ver 2.2.0)
    FFMPEG:                      YES
      codec:                     YES (ver 53.35.0)
      format:                    YES (ver 53.21.1)
      util:                      YES (ver 51.22.2)
      swscale:                   YES (ver 2.1.0)
      gentoo-style:              YES
    GStreamer:                   
      base:                      YES (ver 0.10.36)
      app:                       YES (ver 0.10.36)
      video:                     YES (ver 0.10.36)
    OpenNI:                      YES (ver 1.5.7, build 10)
    OpenNI PrimeSensor Modules:  YES (/usr/lib/libXnCore.so)
    PvAPI:                       NO
    GigEVisionSDK:               NO
    UniCap:                      NO
    UniCap ucil:                 NO
    V4L/V4L2:                    Using libv4l (ver 0.8.8)
    XIMEA:                       NO
    Xine:                        NO

  Other third-party libraries:
    Use IPP:                     NO
    Use Eigen:                   YES (ver 3.0.93)
    Use TBB:                     NO
    Use OpenMP:                  NO
    Use GCD                      NO
    Use Concurrency              NO
    Use C=:                      NO
    Use Cuda:                    NO
    Use OpenCL:                  YES

  OpenCL:
    Version:                     dynamic
    Include path:                /home/xxx/imageproc/opencv-2.4.7/3rdparty/include/opencl/1.2
    Use AMD FFT:                 NO
    Use AMD BLAS:                NO

  Python:
    Interpreter:                 /usr/bin/python2 (ver 2.7.3)
    Libraries:                   /usr/lib/libpython2.7.so (ver 2.7.3)
    numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.6.2)
    packages path:               lib/python2.7/dist-packages

  Java:
    ant:                         /usr/bin/ant (ver 1.8.2)
    JNI:                         /usr/lib/jvm/java-6-openjdk/include /usr/lib/jvm/java-6-openjdk/include /usr/lib/jvm/java-6-openjdk/include
    Java tests:                  YES

  Documentation:
    Build Documentation:         NO
    Sphinx:                      NO
    PdfLaTeX compiler:           /usr/bin/pdflatex

  Tests and samples:
    Tests:                       YES
    Performance tests:           YES
    C/C++ Examples:              YES

  Install path:                  /usr/local

  cvconfig.h is in:              /home/xxx/imageproc/opencv-2.4.7/release

I instantiate the videocapture and try to grab an image as follows:

VideoCapture capture;

capture.open(CV_CAP_OPENNI);

if ( !capture.isOpened() )
{
    cout << "Error opening capture" << endl;
    return -1;
}


if( !capture.grab() )
{
    cout << "Can not grab image" << endl;
}
Foi útil?

Solução

Based on your code my guess is that will use the kinect openni driver as opposed to the asus openni driver

How about this:

VideoCapture capture;

capture.open(CV_CAP_OPENNI_ASUS);

if ( !capture.isOpened() )
{
    cout << "Error opening capture" << endl;
    return -1;
}


if( !capture.grab() )
{
    cout << "Can not grab image" << endl;
}

I have managed to use two asus xtion pro sensors with opencv in the past, you can see my test code here.

Also, these are the values from the highui types header, with comments:

CV_CAP_OPENNI   =900,   // OpenNI (for Kinect)
CV_CAP_OPENNI_ASUS =910,   // OpenNI (for Asus Xtion)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top