A new voxel layer leveraging modern 3D graphics tools to modernize navigation environmental representations
GNU Lesser General Public License v2.1
644
stars
189
forks
source link
大佬你好, 深度相机的fov计算应该是有点小bug, 一个 100°x100°的深度相机参数,画出来的模型,是长方形的,按道理应该是正方形。设置100x100的fov,后作者给的原始的如图中红色的所示: #273
Open
onlyliucat opened 1 year ago
,图中绿色的为 opencv的viz模块显示的fov, 红色的是将作者的六个平面交线画出来显示的fov效果。 正确应该是绿色的部分。 修改fov计算方式之后: , 与绿色的重合了。从六个面的参数画出相机模型的代码如下: //A:0,3,4
修改后的相机模型的六个面的计算代码如下: ` // calculate the 8 vertices of the frustum float near_width = 2 _min_d tan(_hFOV / 2); float near_height = 2 _min_d tan(_vFOV / 2); float far_width = 2 _max_d tan(_hFOV / 2); float far_height = 2 _max_d tan(_vFOV / 2);
v_03 = far_top_left - near_top_left; Eigen::Vector3f T_t = -1*v_01.cross(v_03).normalized(); _plane_normals.push_back(VectorWithPt3D(T_t[0], T_t[1], T_t[2], near_top_left));
_plane_normals.push_back(VectorWithPt3D(0, 0, 1, far_top_left)); `
_Originally posted by @onlyliucat in https://github.com/SteveMacenski/spatio_temporal_voxel_layer/issues/238#issuecomment-1630065207_