image_points_to_world_plane
名称
image_points_to_world_plane —将图像点转换为世界坐标系的平面z = 0。
签名
image_points_to_world_plane(:CameraParam,WorldPose,行,列数,刻度:X,ÿ)
描述
运算符image_points_to_world_plane在世界坐标系中将在Rows和Cols中给出的图像点转换为平面z = 0,并以X和 Y返回其3D坐标。通过传递相对于WorldPose中的相机坐标系的3D姿势来选择世界坐标系。在 CameraParam中,您必须传递内部相机参数(有关参数的顺序和基础相机模型,请参见 calibrate_cameras)。
在许多情况下CameraParam和WorldPose与操作校准相机的结果calibrate_cameras。参见以下示例。
使用参数“缩放”可以缩放生成的3D坐标。必须将参数Scale指定为所需单位/原始单位的比率。原始单位由校准对象的坐标确定。如果原始单位是米(使用标准校准板时就是这种情况),则可以通过为参数Scale选择'm','cm','mm'或 'um'来直接设置所需的单位。
在内部,操作员首先考虑到径向畸变,计算出投影中心和摄像机坐标系中图像轮廓点之间的视线。然后将视线转换为WorldPose中指定的世界坐标系 。通过将平面z = 0与视线相交,可以获得 3D坐标X和Y。
建议仅使用位于校准图像大小内的那些图像点Rows和 Cols。数学模型仅适用于在校准范围内的图像点。
参数
CameraParam(input_control) campar → (实数/整数/字符串)
内部摄像机参数。
WorldPose(input_control) 姿势→ (实数/整数)
相机坐标系中世界坐标系的3D姿势。
元素数: 7
行(input_control) y.array → (实/整数)
要转换的点的行坐标。
默认值: 100.0
列(input_control) axes.x-array → (实数/整数)
要转换的点的列坐标。
默认值: 100.0
比例尺(input_control) 数字→ (字符串/整数/实数)
比例或尺寸
默认值: “ m”
建议值:'m','cm','mm','microns','um',1.0,0.01,0.001,1.0e-6,0.0254,0.3048,0.9144
限制:小数位数> 0
--------------------------
X(输出控制) 坐标x数组→ (实数)
世界坐标系中点的X坐标。
Y(输出控制) y.array → (实数)
世界坐标系中点的Y坐标。
示例:
* Perform camera calibration (with standard calibration plate). calibrate_cameras (CalibDataID, Error) get_calib_data (CalibDataID, 'camera', 0, 'params', CamParam) * Get reference pose (pose 2 of calibration object 0). get_calib_data (CalibDataID, 'calib_obj_pose',\ [0,2], 'pose', WorldPose) * Compensate thickness of plate. set_origin_pose(ObjInCameraPose, 0, 0, 0.0006, WorldPose) * Transform image points into world coordinate system (unit mm). image_points_to_world_plane(CamParam, WorldPose, PointRows, PointColumns, \ 'mm', PointXCoord, PointYCoord)

