Rosanswers logo

I'm trying to use the depth data obtained by kinect with C++ program.

I've already installed openni_kinect with the guide(http://www.ros.org/wiki/openni_kinect, OpenNI itself is installed in this procedure, right?). Next, I'd like to use the depth data with C++ program, but I don't have any idea to do it. Include <??.h> and use some special function? Or not supported yet?

Could you teach me how to do it? I'm using Ubuntu10.04, diamondback and I'd like to use the depth data in image processing using OpenCV2.2.

Thank you in advance.

Originally posted by dinect on ROS Answers with karma: 21 on 2011-05-05

Post score: 1


1 Answer 1


Rosanswers logo

There are at least two ways to use the depth data from the Kinect. First, you mention OpenCV. If you want to use OpenCV with the depth data you would probably want to subscribe to the /camera/depth/image topic, which provides a "depth" image. Each pixel value is the distance measurement in meters (as a 32-bit float). You would probably want to use cv_bridge to convert the ROS topic into an OpenCV cv::Mat -- there is a very good tutorial on cv_bridge. A simple piece of example code could be found in our depth_viewer package, which includes a C++ node that uses cv_bridge and converts the 32-bit float to a nicely scaled 8-bit grayscale image and displays it using OpenCV functions. You can use just about any OpenCV functions on the depth image, and of course segmentation runs fairly easy on a depth image compared to an RGB one.

The other possibility is to use the point cloud representation, on the /camera/depth/points or /camera/rgb/points topic (the latter having RGB data in addition to the standard XYZ data). Rather than using OpenCV, you would want to use the Point Cloud Library, which has many great features and accompanying tutorials.

Originally posted by fergs with karma: 13902 on 2011-05-05

This answer was ACCEPTED on the original site

Post score: 16

Original comments

Comment by kameleon on 2012-10-28:
Hello. I'm working on a project that involves analysis of depth images using OpenCV, and have some problems with conversion into the CV format. I'd like to take a look at your depth_viewer package, but I can't find your repository. Can you give me a link or something where I can download it?

Comment by YUBO.ZUZU on 2013-10-07:
thanks for your kind help!!!

Comment by Consider1001 on 2014-04-15:
Thank you for your answer. May I ask a question that if there is a way to get the value(float) of each point on the depth/image_raw before we convert it in to a cvmat? (Python best)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.