MATLAB Simulate 3D Camera: why is there no focal length (world units) attribute in the sensor model?

6 次查看(过去 30 天)
In the 3D camera simulation (https://www.mathworks.com/help/driving/ref/simulation3dcamera.html) - there is no specific focal length (mm) for the camera intrinsics. I'm working on feature tracking using the camera feed and I cannot estimate the 3D location of a point without knowing the focal length or the scaling factor (w) in (https://www.mathworks.com/help/vision/ug/camera-calibration.html).
It would also be great if MATLAB provides a DEM of the UAV scenarios - ground truth for many applications.
Please advise.

回答(1 个)

Qu Cao
Qu Cao 2022-6-1
Please take a look at this page:
If you know the size of the pixel in world units, you can convert focal length in world units (usually mm) to focal length in pixels.
  6 个评论
Qu Cao
Qu Cao 2022-6-1
Given the following equations:
X = (u - cx) * Z / fx;
Y = (v - cy) * Z / fy;
where [X, Y, Z] is the 3-D point location, [u, v] is the corresponding image point location, and [fx, fy] is the focal lengths. You should be able to compute the factor you were talking about. Note that the Depth port outputs the Z values.
Ram Bhaskara
Ram Bhaskara 2022-6-2
编辑:Ram Bhaskara 2022-6-2
Thanks for the reply, Qu!
For my analysis, I don't have depth info directly - but I'm computing the depth (approximately) from knowing my UAV altitude (say from GPS). If I have my feature's pixel coordinates [u, v] - I am aiming to compute the same feature coordinates in scene units. That's all I need - a vector from the optical center (not frame center) to the feature coordinates. The z-component of this vector is the focal length in mm.
P{camera frame} = [ (cx - u) * f / fx (cy - v) * f / fy f ]
From the intrinsics I devise in MATLAB simulate 3D camera, how do I get to this P (in the camera's reference frame)?

请先登录,再进行评论。

产品


版本

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by