Calculating XYZ from UV and depth

Hello, I am running zed_wrapper 4.0.7 zedMini ros2-foxy on jetson orin dev.

I am trying to get xyz of edge images. I subscribe to raw left rgb image and depth registered. filter my raw image and get the edges. then i find the depth of the pixel from my uv. now i need to calculate the xyz of it.

As i understand i need to perform an equation where
z = d(u,v)
x = d(u,v) * (u-c(x))/f(x))
y = d(u,v) * (v-c(y))/f(y))

found these equations on another topic on stereolabs github.

now how do i get the c and f ? i know they are focal length and princepal center and they are the camera calibration parameters.

How do i retrieve them? during runtime?

I say that the camera publishes camera _info on different topics. (depth,left.right …) they hold d k r p parameters but i dont know what are they?.

where can i find documentation on topic parameters being published?


Hi @anis399
Welcome to the Stereolabs community.

The intrinsic parameters of each image are stored in the camera_info topic associated with each image topic.
For example:
/zed/zed_node/rgb_raw and /zed/zed_node/rgb_raw/camera_info

I get d k r p but what are those?
lets say that i take k[2] this value what does it represent? or d or p ?

@anis399 these are concepts at the base of computer vision applications.
You can get more about them on Wikipedia or by reading the OpenCV documentation.

The concepts described in the OpenCV documentation are used as they are in ROS and in the ZED SDK.