前言
在图像处理中我们有时候对图像或者区域进行纠偏,在刚性变换场景中,图像发生的变化是平移和旋转,本文就来介绍根据2个及2个以上目标点的平移来计算如何对图像和区域纠偏,这种方式的好处是你可以不需要知道角度的偏移。
1、halcon算子应用
csharp
dev_clear_window()
px:=[100,200]
py:=[100,100]
qx:=[100,100]
qy:=[100,0]
vector_to_rigid (px, py, qx, qy, HomMat2D)
dev_set_color ('red')
gen_rectangle2 (Rectangle, 100, 100, 0, 100, 50)
dev_set_color ('green')
affine_trans_region (Rectangle, RegionAffineTrans, HomMat2D, 'nearest_neighbor')
vector_to_rigid用于计算刚性变换矩阵,该算子有5个参数
参数1变换前目标中心点的列坐标构成的数组
参数2变换前目标中心点的行坐标构成的数组
参数3变换后目标中心点的列坐标构成的数组
参数4变换后目标中心点的行坐标构成的数组
参数5是从变换前到变换后的刚性变换矩阵
上面的halcon代码的作用是根据(100,100),(200,100)这两个变换前的点;然后将这2个点绕着(100,100)逆时针旋转90度后得到的(100,100),(100,0)得到旋转后的点,通过这四个坐标点就构建了变换矩阵,最后再对中心点为(100,100),长200,宽100的矩形区域应用这个变换矩阵,最终得到的就是将这个矩形区域逆时针旋转90度后的效果。
2、 刚性变换效果
下图中红色是变换前,绿色为变换后,可以看出矩形经过变换后逆时针旋转了90度。
