问题
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;
}
回答1:
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)
来源:https://stackoverflow.com/questions/22443311/can-not-grab-image-from-videocapture-opencv-with-asus-xtion-pro-live