为什么 pcl::CropBox 的最小和最大向量是 4 维的?
Why are the min and max vectors for pcl::CropBox 4-dimensional?
pcl::CropBox
过滤器的 setMin
和 setMax
方法每个都接受一个 Eigen::Vector4f
作为参数。
为什么是 4f 而不是 3f?什么是第四维度?
Vector4F 有什么用?
Vector4f对应homogeneous coordinate。例如,(3, 4, 5, 1) 和(6, 8, 10, 2) 是齐次坐标系中的同一点。在这种情况下,您可以将 (a, b, c, d) 规范化为 (a/d, b/d, c/d, 1)。
Easy answer is: Just set the last digit to 1
为什么 PCL CropBox 需要 Vector4f?
这是因为 PCL CropBox 可以通过 setTransform
处理任何框变换
变换矩阵通常包含一个 4x4 矩阵,示例如下,其中 r
是一个 3x3 旋转矩阵,t
是一个 3-d 向量
[[r0, r1, r2, t0],
[r3, r4, r5, t1],
[r6, r7, r8, t2],
[ 0, 0, 0, 1]]
将齐次坐标 (1x4) 向量与 (4x4) 矩阵相乘会更容易。
欢迎提出更多问题,因为我可以更新此答案。
pcl::CropBox
过滤器的 setMin
和 setMax
方法每个都接受一个 Eigen::Vector4f
作为参数。
为什么是 4f 而不是 3f?什么是第四维度?
Vector4F 有什么用?
Vector4f对应homogeneous coordinate。例如,(3, 4, 5, 1) 和(6, 8, 10, 2) 是齐次坐标系中的同一点。在这种情况下,您可以将 (a, b, c, d) 规范化为 (a/d, b/d, c/d, 1)。
Easy answer is: Just set the last digit to 1
为什么 PCL CropBox 需要 Vector4f?
这是因为 PCL CropBox 可以通过 setTransform
处理任何框变换变换矩阵通常包含一个 4x4 矩阵,示例如下,其中 r
是一个 3x3 旋转矩阵,t
是一个 3-d 向量
[[r0, r1, r2, t0],
[r3, r4, r5, t1],
[r6, r7, r8, t2],
[ 0, 0, 0, 1]]
将齐次坐标 (1x4) 向量与 (4x4) 矩阵相乘会更容易。
欢迎提出更多问题,因为我可以更新此答案。