让我坐下来我有点云数据我不知道传感器位置(并且它不是[0,0,0])。有没有一种很好的方法来估算原始传感器的位置?
例如,从下面的点云,
点云数据:
找到允许点云看起来像这样的视点。(如深度图)因此没有(或最少)可以观察到的洞。
点云从我想要查找的视点看起来像这张照片:
答案 0 :(得分:1)
Typically a point cloud reconstruction is done by capturing the object in different angles and aligning them to together. In point cloud this process is called Registration. So that there is no static position to the kinect sensor since in each frame, the sensor position in global coordinates space is not static.
So that I assume you are not asking about a point cloud which is gone through a reconstruction process, thus a point cloud which generated from a static sensor position. If that point cloud is not gone through any transformations (rotation, transition) and generated using raw depth data, then the point cloud is always generated in depth camera coordinates space where origin is the position of the Kinect sensor.
In your question it says sensor position is not [0,0,0], That means after capturing the depth image, it has been transformed to new coordinate space.(I assume the origin of the new coordinate space is the center of the given point cloud). So without knowing this transformation matrix, you can't get the original camera position(relative to the new coordinate).
Most impotently, when you say "position of the sensor", you need to specify the coordinate space which you are referring to. position is always relative to the specific coordinate space.
You can find the position of the camera as @Atif Anwer said BUT under one condition, either one of the two point clouds has NOT been gone trough a transformation, thus it is in original coordinates space. Then you can find the transformation of the second point cloud relative to the first point cloud and apply that transformation matrix to [0,0,0] to find the camera position of the second point cloud relative to the initial depth camera coordinate space.