explore_halcon.hdev(10)之p_do_track_engine_part函数模块

齐次坐标:是普通坐标乘以一个系数在添加一个w的坐标,例如一个普通坐标点(x,y,z)转换为齐次坐标为(x*w,y*w,z*w,w)

齐次坐标矩阵:包含物体的位置信息与姿态信息的矩阵,最后一行固定数字0001。即一个n维的向量用n+1表示

齐次坐标矩阵的作用:

1.可以描述坐标系B相对于A的空间位置

2.可以将某个物体在坐标系B上的空间信息换到到坐标系上。

3.可以得出同一个坐标系B某向量p旋转某角度θ后的坐标

该函数主要是是针对可变模型的目标匹配,通过齐次坐标转换对图像与目标的转换。

主要流程:

1.读取region,生成相机内参,根据region创建可变形模版,设置可变性模版的重心,获取轮廓Contours

2.第一次查找全部图像中的模版,获取图像当前的齐次变换矩阵HomMat2DOut(图像中的实例相对于模版的描述),之后的每次循环都会更新该矩阵

3.当上一次执行的find_planar_uncalib_deformable_model的Score大于0则将当前待识别的图像根据上一次循环的矩阵求逆(当前图像相对于上一次执行的图像的描述)后进行仿射变换,旋转或平移到上一次图像的相对位姿,根据转换后的图像进行可变形模版的查找,查找后更新HomMat2DOut,获取图像中的Contours轮廓,将模型的中心进行齐次坐标转换,转换后将转换后的坐标与世界坐标计算绝对位姿,在图形上显示绝对位姿。

 

1.gen_cam_par_area_scan_division( : : Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight : CameraParam):为一个区域扫描相机生成一个相机参数元组,该参数元组具有由分割模型建模的畸变。相机标定后产生的相机内参

Focus:焦距

Kappa:径向扭曲大小,即径向畸变

Sx:单个像元的宽

Sy:单个像元的高

Cx:中心点x坐标

Cy:中心点y坐标

ImageWidth:图像宽

ImageHeight :图像高

2.create_planar_uncalib_deformable_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, ScaleRMin, ScaleRMax, ScaleRStep, ScaleCMin, ScaleCMax, ScaleCStep, Optimization, Metric, Contrast, MinContrast, GenParamName, GenParamValue : ModelID):为未标定的透视图匹配创建可变性模版

参数:

Template :输入图像,其域将用于创建模型

NumLevels:金字塔最大数量

AngleStart:参数未使用

AngleExtent:参数未使用

AngleStep:角度步长(分辨率)

ScaleRMin:行最小缩放

ScaleRMax:参数未使用

ScaleRStep:按行方向缩放步长(分辨率)

ScaleCMin:列最小缩放

ScaleCMax:参数未使用

ScaleCStep:按列方向缩放步长

Optimization:一种用来生成模型的优化方法

Metric:匹配度量(该参数决定了模型在图像中被识别的条件,'use_polarity':图像中的对象和模型必须具有相同的对比度)

Contrast:为模版图像中对象的对比度设置阈值或滞后阈值

MinContrast:搜索图像中目标的最小对比度

GenParamName:通用类型参数

GenParamValue:通用类型值

ModelID:可变性模版句柄

3.set_deformable_model_origin( : : ModelID, Row, Column : ):设置可变模型的原点,该原点的设置是根据模版创建输入图像的中心设置的,(-20,-40)表示原点在中心的左上方

4.find_planar_uncalib_deformable_model(Image : : ModelID, AngleStart, AngleExtent, ScaleRMin, ScaleRMax, ScaleCMin, ScaleCMax, MinScore, NumMatches, MaxOverlap, NumLevels, Greediness, GenParamName, GenParamValue : HomMat2D, Score):求出图像中可变模型的最佳匹配

参数HomMat2D:模型与找到的实例的转换矩阵

5.projective_trans_contour_xld(Contours : ContoursProjTrans : HomMat2D : ):对XLD轮廓应用投影变换

6.projective_trans_pixel( : : HomMat2D, Row, Col : RowTrans, ColTrans):对像素坐标应用齐次变换矩阵

7.vector_to_pose( : : WorldX, WorldY, WorldZ, ImageRow, ImageColumn, CameraParam, Method, QualityType : Pose, Quality):计算出世界坐标与像素坐标之间的点的绝对位姿

参数:

WorldX:世界坐标X

WorldY:世界坐标Y

WorldZ:世界坐标Z

ImageRow:像素坐标Row

ImageColumn:像素坐标Column

CameraParam:相机内参

Method:进行位姿计算的方法(perspective cameras:'planar_analytic'方法是针对世界点在一个水平面上(WorldZ=0))

QualityType :质量度量

Pose:位姿

Quality:位姿质量

8.hom_mat2d_invert( : : HomMat2D : HomMat2DInvert):求二维齐次变换矩阵的逆

9.projective_trans_image(Image : TransImage : HomMat2D, Interpolation, AdaptImageSize, TransformDomain : ):对图像应用仿射变换

参数:

Image :输入图像

TransImage :转换输出图像

HomMat2D:二维齐次变换矩阵

Interpolation:插值的方式

AdaptImageSize:是否自动调整图像大小

TransformDomain :是否改变输入图像的域

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

乌里随记

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

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

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

打赏作者

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

抵扣说明:

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

余额充值