*图像拼接
*1.求三个相机之间的位置关系
read_tuple ('E:/matrix.tup', Tuple) //读取相机一的像素转世界坐标的标定文件
read_tuple ('E:/matrix1.tup', Tuple1) //读取相机二的像素转世界坐标的标定文件
read_tuple ('E:/matrix2.tup', Tuple2) //读取相机三的像素转世界坐标的标定文件
hom_mat2d_invert (Tuple, HomMat2DInvert) //求相机一的逆矩阵
* hom_mat2d_invert (Tuple1, HomMat2DInvert1)
* hom_mat2d_invert (Tuple2, HomMat2DInvert2)
affine_trans_point_2d (Tuple, 0, 0, Qx, Qy)
affine_trans_point_2d (Tuple1, 0, 0, Qx1, Qy1)
affine_trans_point_2d (Tuple2, 0, 0, Qx2, Qy2)
Dheight1 := Qx1 - Qx //求相机二相对相机一的x世界坐标位置关系
Dheight2 := Qx2 - Qx //求相机二相对相机一的y世界坐标位置关系
Dwidth1 := Qy1 -Qy //求相机三相对相机一的x世界坐标位置关系
Dwidth2 := Qy2 -Qy //求相机三相对相机一的y世界坐标位置关系
affine_trans_point_2d (HomMat2DInvert, 0, 0, Cx, Cy)
affine_trans_point_2d (HomMat2DInvert, Dheight1, Dwidth1, Cx1, Cy1)
affine_trans_point_2d (HomMat2DInvert, Dheight2, Dwidth2, Cx2, Cy2)
offsetR := Cx1 - Cx //求相机二相对相机一的x像素坐标位置关系
offsetC := Cy1 - Cy //求相机二相对相机一的y像素坐标位置关系
offsetR1 := Cx2 - Cx //求相机三相对相机一的x像素坐标位置关系
offsetC1 := Cy2 - Cy //求相机三相对相机一的y像素坐标位置关系
*2.将三个相机的图像放到一个数组
read_image (Image, 'E:/1_4.bmp')
get_image_size (Image, Width, Height)
gen_empty_obj (empImage)
read_image (Image1, 'E:/1_4.bmp')
concat_obj (empImage, Image1, empImage)
read_image (Image1, 'E:/1_5.bmp')
concat_obj (empImage, Image1, empImage)
read_image (Image1, 'E:/1_6.bmp')
concat_obj (empImage, Image1, empImage)
*3.将三张图按照位置关系拼接
tile_images_offset (empImage, TiledImage, [0,offsetR,offsetR1], [0,offsetC,offsetC1], [0, 0, 0], [0, 0, 0], [Height, Height, Height], [Width, Width, Width], offsetC1+Width, offsetR + Height)
affine_trans_point_2d (HomMat2DInvert, 0, 41, Cx3, Cy3)
CR := Cx - Cx3 //画圆的半径
gen_circle_contour_xld (ContCircle, Cx, Cy, CR, 0, 6.28318, 'positive', 1)
dev_set_color ('red')
dev_set_line_width (1)
dev_display (TiledImage)
dev_display (ContCircle)
效果图