hom_mat2d_translate( : : HomMat2D, Tx, Ty : HomMat2DTranslate)
其中Tx,Ty为平移矢量,是在原点的平移矢量
因此在进行平移变换时,先将待平移物体平移到原点位,对平移到原点的region,之后再进行平移变换时,都是将转到原点的region进行之后的平移变换。
这种比较适合于find_shape_model(),获得的轮廓中心在原点位,最后只需要将原点位的轮廓进行平移变换即可。
hom_mat2d_translate比较适合回到原点位的region再进行平移变换
read_image (Image, 'printer_chip/printer_chip_01')
draw_rectangle1 (200000, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
hom_mat2d_identity (HomMat2DIdentity)
*先将要转换region平移到原点位置
hom_mat2d_translate (HomMat2DIdentity, -Row1,-Column1, HomMat2DTranslate)
affine_trans_region (Rectangle, RegionAffineTrans, HomMat2DTranslate, 'nearest_neighbor')
*之后对回到原点位的region再进行需要的平移
hom_mat2d_translate (HomMat2DTranslate, Row1+600, Column1, HomMat2DTranslate1)
affine_trans_region (RegionAffineTrans, RegionAffineTrans1, HomMat2DTranslate1, 'nearest_neighbor')
area_center (RegionAffineTrans1, Area, Row, Column)
*若使用vector_angle_to_rigid则只需要知道现在点以及要转到到的位置点既可以
*
vector_angle_to_rigid (Row1, Column1, 0, 600, 0, 0, HomMat2D)
affine_trans_region (Rectangle, RegionAffineTrans2, HomMat2D, 'nearest_neighbor')