设为首页收藏本站
授权版本:2024_07
开启左侧

[HALCON算子] hom_mat2d_reflect反射(镜像)矩阵

[复制链接]
Criss 发表于 2022-11-19 12:57:01 | 显示全部楼层 |阅读模式
微信截图_20221119130020.png
参数表:
  1. hom_mat2d_reflect( : : HomMat2D, Px, Py, Qx, Qy : HomMat2DReflect)
复制代码


说明:
hom_mat2d_reflect将关于由两点(Px,Py)和(Qx,Qy)给出的轴的反射添加到齐次2d变换矩阵HomMat2D,并返回HomMat2DReflect中的结果矩阵。
反射由2×2反射矩阵m描述。它是相对于全局(即固定)坐标系进行的,这对应于以下变换矩阵链:
微信截图_20221119124710.png
轴(Px,Py)-(Qx,Qy)在变换中是固定的,即当使用HomMat2DReflect进行变换时,轴上的点保持不变。为了获得这种行为,首先向输入变换矩阵添加一个平移,将轴移动到全局坐标系的原点。然后,添加反射,最后是将轴移回其原始位置的平移。这对应于以下转换链:
微信截图_20221119124719.png
要在本地坐标系(即由HomMat2D描述的坐标系)中执行变换,请使用hom_mat2d_reflect_local。
(hom_mat2d_reflect_local默认以(0,0)本地坐标系,无需填写,所以px,py指定轴即可)

注意:
应当注意,齐次变换矩阵指的是一般的右手数学坐标系。
如果使用齐次变换矩阵来变换图像、区域、XLD轮廓或从图像中提取的任何其他数据,则必须在x坐标中传递变换的行坐标,而在y坐标中传递列坐标。
因此,传递行和列坐标的顺序遵循通常的顺序(Row行、Column列)。这种约定对于获得用于图标数据变换的右手坐标系是必不可少的,并且因此尤其确保旋转在正确的数学方向上执行。

注意,齐次矩阵是作为一个元组逐行存储的,通常不存储最后一行,因为它对于描述仿射变换的所有齐次矩阵都是相同的。
例如:
微信截图_20221119124726.png
上面这个齐次矩阵[ra,rb,tc,rd,re,tf]存储为元组。该矩阵代表投影2D变换也可以处理3×3的矩阵。

代码:
  1. gen_contour_polygon_xld (Contour, [0,100,200,200,200], [0,0,0,100,200])
  2. hom_mat2d_identity (HomMat2DIdentity)
  3. hom_mat2d_reflect (HomMat2DIdentity, 0, 0, 10, 0, HomMat2DReflect) *基于Y
  4. *hom_mat2d_reflect (HomMat2DIdentity, 0, 0, 0, 10, HomMat2DReflect) *基于X
  5. *hom_mat2d_reflect (HomMat2DIdentity, 0, 0, 10, 10, HomMat2DReflect) *基于对角线
  6. affine_trans_contour_xld (Contour, ContoursAffineTrans, HomMat2DReflect)
复制代码

镜像前 微信截图_20221119125751.png 镜像后 微信截图_20221119125805.png
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
LJBNTHM 发表于 2022-11-19 16:29:34 | 显示全部楼层
线性代数很重要!!!
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
wmjmao 发表于 2022-11-20 13:11:14 | 显示全部楼层
高等数学,我就是数学不好才选的文科,结果还是跑不掉
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表