0
$\begingroup$

Rosanswers logo

I'm going around in circles trying to solve what I think is a simple problem: using Python (not C++), I would like to get the depth values corresponding to the points in the RGB image returned from the Kinect at a given (x, y) coordinate. I am subscribing to /camera/rgb/image_color and using cv_bridge and OpenCV's face detector to get the bounding box around a face. I then want to get the depth values for each point (or a subsample of points) in that box. So I need to be able to pick (x, y) coordinates (which I know) from within the box and get back the depth values for those points.

I tried subscribing to /camera/depth/image which is a 32FC1 image type and I thought this was going to work but I ran into "index out of range" errors when accessing points that should have been within the proper width and height boundaries of the image.

Although I realize there are no Python bindings for PCL )-:, I found this nice utility on this forum so I'm wondering if I should be using point clouds rather than images to get the depth values?

Any ideas?

Thanks
patrick


Originally posted by Pi Robot on ROS Answers with karma: 4046 on 2011-05-27

Post score: 1


Original comments

Comment by Pi Robot on 2011-05-28:
OK, when I look more closely on a higher resolution image I can see it is not perfectly rectangular. Also it looks like my script was converting NaNs to 0's.

Comment by Felix Endres on 2011-05-27:
No, I get mostly NaNs at the border. But it's not like a rectangular frame, because of the lens distortion.

Comment by Pi Robot on 2011-05-27:
Thanks Felix--see my answer below. BTW, do you get a black border (all 0's) around your depth image? It looks to be about 5 pixels on a 160x120 image.

Comment by Felix Endres on 2011-05-27:
"I tried subscribing to /camera/depth/image which is a 32FC1 image type ... but I ran into "index out of range" errors" - that's weird. In c++ this works.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Thanks to Felix's comment, I went back to the /camera/depth/image approach and finally realized I was swapping rows and columns in one of the statements which is why I was getting "index out of range errors". So repeat after me: an image that has m X n pixels has n X m rows and columns. :-)

--patrick


Originally posted by Pi Robot with karma: 4046 on 2011-05-27

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by ros on 2013-06-12:
hello I want to subscribe to rgb and depth image simultaneously and publish it to multiple topics using one node in cvbrige, plz plz can u provide me ur code, I m in trouble

$\endgroup$

Your Answer

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