为什么图像是这样的呢? 因为一共有4张图,然后要求有3列,1行肯定装不下,那么至少需要2行。由于是垂直方向排列,那么就需要先把垂直方向排满,一列一列地排。
如果把'vertical'改成'horizontal'结果会怎样呢? 结果发现,它会先把每一行先排满,排不下了再往后排。
二、tile_images_offset算子拼图
算子签名: tile_images_offset(Images : TiledImage : OffsetRow, OffsetCol, Row1, Col1, Row2, Col2, Width, Height : )
签名看不懂没关系,看看例子就懂了。 - read_image (Image1, '01.jpg')
- read_image (Image2, '02.jpg')
- get_image_size (Image2, Width, Height)
- gen_empty_obj (imgs)
- concat_obj (imgs, Image1, imgs)
- concat_obj (imgs, Image2, imgs)
-
-
- *第一、二、三、四……张图的左上角顶点的位置
- tile_images_offset (imgs, TiledImage, [0, Height], [0,0], [-1,-1], [-1,-1], [-1,-1], [-1,-1], Width, Height *2)
- get_image_size (TiledImage, Width1, Height1)
复制代码
为什么拼图结果是这样的呢? 我们看看代码: tile_images_offset (imgs, TiledImage, [0, Height], [0,0], [-1,-1], [-1,-1], [-1,-1], [-1,-1], Width, Height *2)
① 上面这行代码中有很多二维元组,实际上,有几张图元组就有几维。 ② [0, Height], [0,0]指第一张图的左上角行列坐标是(0, 0),第二张图左上角行列坐标是(Height, 0),也就说第二张图在垂直方向上紧挨着第一张图。 ③ 之后的四个参数Row1, Col1, Row2, Col2大家感兴趣可以自己去看帮助文档,一般保持默认值就行。 ④ Width, Height *2指的是最终拼接图的宽度是 Width, 高度是Height *2。
我们将第10行代码改成: tile_images_offset (imgs, TiledImage, [0, Height], [0,100], [-1,-1], [-1,-1], [-1,-1], [-1,-1], Width, Height *3)
结果如下:
更高级的图像拼接方法可以研究gen_projective_mosaic算子。
|