get_line_of_sightT_get_line_of_sightGetLineOfSightGetLineOfSightget_line_of_sight (算子)

名称

get_line_of_sightT_get_line_of_sightGetLineOfSightGetLineOfSightget_line_of_sight — 计算图像中点对应的视线。

签名

get_line_of_sight( : : Row, Column, CameraParam : PX, PY, PZ, QX, QY, QZ)

Herror T_get_line_of_sight(const Htuple Row, const Htuple Column, const Htuple CameraParam, Htuple* PX, Htuple* PY, Htuple* PZ, Htuple* QX, Htuple* QY, Htuple* QZ)

void GetLineOfSight(const HTuple& Row, const HTuple& Column, const HTuple& CameraParam, HTuple* PX, HTuple* PY, HTuple* PZ, HTuple* QX, HTuple* QY, HTuple* QZ)

void HCamPar::GetLineOfSight(const HTuple& Row, const HTuple& Column, HTuple* PX, HTuple* PY, HTuple* PZ, HTuple* QX, HTuple* QY, HTuple* QZ) const

static void HOperatorSet.GetLineOfSight(HTuple row, HTuple column, HTuple cameraParam, out HTuple PX, out HTuple PY, out HTuple PZ, out HTuple QX, out HTuple QY, out HTuple QZ)

void HCamPar.GetLineOfSight(HTuple row, HTuple column, out HTuple PX, out HTuple PY, out HTuple PZ, out HTuple QX, out HTuple QY, out HTuple QZ)

def get_line_of_sight(row: Sequence[float], column: Sequence[float], camera_param: Sequence[Union[int, float, str]]) -> Tuple[Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float]]

描述

get_line_of_sightget_line_of_sightGetLineOfSightGetLineOfSightGetLineOfSightget_line_of_sight computes the line of sight corresponding to a pixel (RowRowRowRowrowrow, ColumnColumnColumnColumncolumncolumn) in the image. The line of sight is a (straight) line in the camera coordinate system, which is described by two points (PXPXPXPXPXpx,PYPYPYPYPYpy,PZPZPZPZPZpz) and (QXQXQXQXQXqx,QYQYQYQYQYqy,QZQZQZQZQZqz) on the line. The camera is described by the internal camera parameters CameraParamCameraParamCameraParamCameraParamcameraParamcamera_param (see 标定 for details). If a pinhole camera is used, the second point lies on the focal plane, i.e., for frame cameras, the output parameter QZQZQZQZQZqz is equivalent to the focal length of the camera, whereas for linescan cameras, QZQZQZQZQZqz also depends on the motion of the camera with respect to the object. The equation of the line of sight is given by

The advantage of representing the line of sight as two points is that it is easier to transform the line in 3D. To do so, all that is necessary is to apply the operator affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d to the two points.

执行信息

参数

RowRowRowRowrowrow (输入控制)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Row coordinate of the pixel.

ColumnColumnColumnColumncolumncolumn (输入控制)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Column coordinate of the pixel.

CameraParamCameraParamCameraParamCameraParamcameraParamcamera_param (输入控制)  campar HCamPar, HTupleSequence[Union[int, float, str]]HTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Internal camera parameters.

PXPXPXPXPXpx (输出控制)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

X coordinate of the first point on the line of sight in the camera coordinate system

PYPYPYPYPYpy (输出控制)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Y coordinate of the first point on the line of sight in the camera coordinate system

PZPZPZPZPZpz (输出控制)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Z coordinate of the first point on the line of sight in the camera coordinate system

QXQXQXQXQXqx (输出控制)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

X coordinate of the second point on the line of sight in the camera coordinate system

QYQYQYQYQYqy (输出控制)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Y coordinate of the second point on the line of sight in the camera coordinate system

QZQZQZQZQZqz (输出控制)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Z coordinate of the second point on the line of sight in the camera coordinate system

示例(HDevelop)

* Set internal camera parameters.
* Note the, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, 30, 4.65e-006, 4.65e-006, \
                                640, 480, 1280, 960, CameraParam)
* Inverse projection.
get_line_of_sight([50, 100], [100, 200], CameraParam, PX, PY, PZ, QX, QY, QZ)

示例(HDevelop)

* Set internal camera parameters.
* Note the, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, 30, 4.65e-006, 4.65e-006, \
                                640, 480, 1280, 960, CameraParam)
* Inverse projection.
get_line_of_sight([50, 100], [100, 200], CameraParam, PX, PY, PZ, QX, QY, QZ)

示例(HDevelop)

* Set internal camera parameters.
* Note the, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, 30, 4.65e-006, 4.65e-006, \
                                640, 480, 1280, 960, CameraParam)
* Inverse projection.
get_line_of_sight([50, 100], [100, 200], CameraParam, PX, PY, PZ, QX, QY, QZ)

示例(HDevelop)

* Set internal camera parameters.
* Note the, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, 30, 4.65e-006, 4.65e-006, \
                                640, 480, 1280, 960, CameraParam)
* Inverse projection.
get_line_of_sight([50, 100], [100, 200], CameraParam, PX, PY, PZ, QX, QY, QZ)

示例(HDevelop)

* Set internal camera parameters.
* Note the, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, 30, 4.65e-006, 4.65e-006, \
                                640, 480, 1280, 960, CameraParam)
* Inverse projection.
get_line_of_sight([50, 100], [100, 200], CameraParam, PX, PY, PZ, QX, QY, QZ)

结果

get_line_of_sightget_line_of_sightGetLineOfSightGetLineOfSightGetLineOfSightget_line_of_sight returns 2 ( H_MSG_TRUE) if all parameter values are correct。如有必要,则抛出异常。

可能的前趋

read_cam_parread_cam_parReadCamParReadCamParReadCamParread_cam_par, camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibrationcamera_calibration

可能的后继

affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d

另见

camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibrationcamera_calibration, disp_caltabdisp_caltabDispCaltabDispCaltabDispCaltabdisp_caltab, read_cam_parread_cam_parReadCamParReadCamParReadCamParread_cam_par, project_3d_pointproject_3d_pointProject3dPointProject3dPointProject3dPointproject_3d_point, affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d

模块

标定