先看下两个坐标图谱:
变换前:
变换后:
我们根据1号点和9号点前后的关系,计算变换后其他点的坐标:这其实就是根据MARK点进行定位的原理
halcon代码:
执行结果:
我们发现,两种变换方式差别在于 :
affine_trans_pixel在变换前先减去0.5,变换后又加上0.5这样才会使结果和affine_trans_point_2d是一致的。(可以自己尝试一下不做加减0.5的操作去验证结果是否正确)
这是因为affine_trans_pixel是基于亚像素概念,我们知道图像的最小单位是1pixel(1个像素就是一个方格),所以如果在一个像素内使用亚像素去表示像素的中心时,那中心点距离像素边缘是有0.5个pixel的距离的。
所以使用affine_trans_pixel就存在0.5的偏移,顾名思义,这个算子是用来计算像素坐标的转换
实际坐标的转化我们最好还是使用affine_trans_point_2d
源文件下载链接