explore_halcon.hdev(14)之p_do_calibrate_cameras_telecentric_tilt函数模块

halcon中标定版细节https://www.cnblogs.com/xiaomaLV2/p/5011011.html 作者: 小马_xiao

图像像素坐标系、图像物理坐标系、相机坐标系、世界坐标系

图像像素坐标系:

图像物理坐标系:相机光轴与图像相交的点位原点,即图像的中心点,坐标轴的单位通常为mm,坐标轴与图像像素坐标轴平行

函数:

该函数主要是演示了倾斜镜头的优点,并使用远心倾斜镜头校准相机

主要流程包括:

1.创建校准数据模版,设置初始相机参数,以及标定板,添加校准图像,进行校准

2.校准成功后获取相机内外参

3.处理图像,生成垂直于矩形的边,根据生成的测量模型句柄根据最小边缘幅度进行分割,获取两个边的中心点,将所有的中心点根据得到的相对位姿转换到世界坐标系中,计算每个相邻中心点的实际距离,并计算平均值与标准差

 

算子:

1.crop_rectangle1(Image : ImagePart : Row1, Column1, Row2, Column2 : ):裁剪一个或多个矩形区域,矩形有左上角和右下角的坐标定义

生成场景图像:

1.gen_contour_polygon_xld( : Contour : Row, Col : ):生成一条线

2.gen_region_polygon_filled( : Region : Rows, Columns : ):将多边形存储为“filled”区域

3.vector_to_proj_hom_mat2d( : : Px, Py, Qx, Qy, Method, CovXX1, CovYY1, CovXY1, CovXX2, CovYY2, CovXY2 : HomMat2D, Covariance):利用给定点的对应关系计算仿射变换矩阵

参数:

Px:图1中输入点Row坐标

Py:图1中输入点Column坐标

Qx:图2中输入点Row坐标

Qy:图2中输入点Column坐标

Method:计算方法(算法'dlt':快速而简单,但是相当不准确的错误估计算法。'normaliized_dlt':在速度和精度上提供了一个很好的折中。'gold_standard':执行数学上最优蛋较慢的优化)

CovXX1:图1中各点的行坐标方差

CovYY1:图1中各点的列坐标方差

CovXX2:图2中个点的行坐标方差

CovXY2:图2中各点的列坐标方差

HomMat2D:齐次仿射变换矩阵句柄

Covariance:反射变换矩阵的9*9协方差矩阵

4.create_calib_data( : : CalibSetup, NumCameras, NumCalibObjects : CalibDataID):创建校准数据模型

参数:

CalibSetup:校准装类型('calibration_object':根据从校准对象的观察中提取的度量信息,校准一个或多个摄像机的内参数和摄像机姿态)

CalibSetup:校准装置中摄像机的数量

NumCalibObjects :校准对象的数量

CalibDataID:校准数据模型的句柄

5.find_calib_object(Image : : CalibDataID, CameraIdx, CalibObjIdx, CalibObjPoseIdx, GenParamName, GenParamValue : ):找到Halcon校准版,并在校准数据模型中设置提取的点和轮廓

参数:

Image:输入图像

CalibDataID:校准数据模型句柄

CameraIdx:观测相机的索引

CalibObjIdx:校准对象的索引

CalibObjPoseIdx:被观侧校准对象的索引

GenParamName:通用类型参数('sigma':提取标记轮廓的平滑因子)

GenParamValue :通用参数值

6.get_calib_data_observ_contours( : Contours : CalibDataID, ContourName, CameraIdx, CalibObjIdx, CalibObjPoseIdx : ):从校准数据模型中获取基于轮廓的观测数据

参数ContourName:选择轮廓的类型('caltab':校准版轮廓,'marks':校准板的轮廓标记)

7.calibrate_cameras( : : CalibDataID : Error):标记相机

8.get_calib_data( : : CalibDataID, ItemType, ItemIdx, DataName : DataValue):查询在校准数据模型中存储或计算的数据

参数:

CalibDataID:校准数据模型句柄

ItemType:校准数据项的类型(ItemType='camera':优化相机系统内部参数)

ItemIdx:受影响项目的索引(取决于所选的项目类型)

DataName:被检查数据的名称('params':返回相机参数值, 'params_labels':返回'params'参数对应的参数名)

DataValue:输出的数据

9.get_calib_data_observ_points( : : CalibDataID, CameraIdx, CalibObjIdx, CalibObjPoseIdx : Row, Column, Index, Pose):从校准数据模型中获取基于点的观测数据

参数:
CalibDataID:校准数据模型句柄

CameraIdx:观测相机的索引

CalibObjIdx:校准对象的索引

CalibObjPoseIdx :被观侧校准对象的索引

输出:

Row:检测点的行坐标

Column:检测点的列坐标

Index:被测点与被测校准对象点的对应关系

Pose:粗略估计被检测校准物体相对于被测相机的姿态

10.gen_measure_rectangle2( : : Row, Column, Phi, Length1, Length2, Width, Height, Interpolation : MeasureHandle):准备提取垂直于矩形的直边,系统参数 'int_zooming'影响用于构造度量对象的计算的准确性和速度,如果 'int_zooming'设置为true则内部激素那将使用不动点算法执行,从而大大缩短执行时间,但是,这种模式下的几何精度略低

参数:

Row:矩形的中心点行坐标

Column:矩形的中线点列坐标

Phi:矩形纵轴与水平的夹角(弧度)

Length1:矩形的一半宽

Length2:矩形的一半高

Width:后续处理图像的宽度

Height:后续处理图像的高度

Interpolation :要使用的差值类型( 'bilinear':双线性差值,'bicubic':双三次插值, 'nearest_neighbor':测量中的灰度值由最近的灰度值,即通过常数插值获得)

MeasureHandle:测量对象句柄

11.measure_pairs(Image : : MeasureHandle, Sigma, Threshold, Transition, Select : RowEdgeFirst, ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, IntraDistance, InterDistance):提取垂直于矩形或唤醒弧的直边对,根据Threshold进行提取

参数:

Image:输入图像

MeasureHandle:测量对象句柄

Sigma:高斯平滑系数

Threshold:最低边缘幅度(最小边缘灰度差值)

Transition:确定如何将边缘分组为边缘对的灰度值转换类型

Select :选择边缘对

输出:

RowEdgeFirst:第一个边的中心的行坐标

ColumnEdgeFirst:第一个边的中心的列坐标

AmplitudeFirst:第一个边的边缘振幅

RowEdgeSecond:第二边中心点行坐标

ColumnEdgeSecond:第二边中心点列坐标

AmplitudeSecond:第二个边的边缘振幅

IntraDistance:一对边之间的距离

InterDistance:相邻边缘对之间的距离

12.image_points_to_world_plane( : : CameraParam, WorldPose, Rows, Cols, Scale : X, Y):将像素坐标转换到世界坐标系平面z=0

参数:

CameraParam:相机内参

WorldPose:世界坐标系在摄像机坐标系中的三维姿态

Rows:要转换点的行坐标

Cols:要转换点的列坐标

Scale :单位

X:在世界坐标系中的点的X坐标

Y:在世界坐标系中的点的Y坐标

13.distance_pp( : : Row1, Column1, Row2, Column2 : Distance):计算两点之间的距离

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乌里随记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值