Halcon无图像旋转时的图像拼接

  为了将尺寸较大的产品拍完,可采用分区拍摄再拼图的方式。那么,如何使用Halcon中的算子进行图像拼接呢?本文介绍一种在相机无旋转的情况下使用tile_images_offset进行图像拼接的方法。该方法计算简单,耗时较短。其大致分为3个步骤:一是计算重叠标记点的中心坐标;二是图像切割;三是图像拼接。

计算重叠标记点的中心坐标

  为了对两幅图像进行拼接,一定需要在两幅图像中找到相同的标志物,比如在两幅图像中均存在的同一个标志圆。如果该标志圆在第一幅图像的下半部分,而在第二幅图像的上半部分。利用该标志物,在第一幅图像中取标志物中心以上的部分,而在第二幅图像中取标志物中心以下的部分,把取出来的两部分进行拼接即可。因此,分离出标志物并计算物体中心是前提。在下例中是通过阈值和形状选择的方式来找到标志圆,并计算其中心。代码如下:

read_image (Image1, 'F:/Project/1.bmp')
threshold (Image1, Regions, 247, 255)
connection (Regions, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, ['area','width','holes_num','column'], 'and', [34328,206,0,165], [54328,406,3,365])
area_center (SelectedRegions, Area, Row, Column)
图像剪切

  在得到标记物的中心的坐标值后,根据需要从原图中截取非重叠区域。

crop_rectangle1 (Image1, ImagePart1,0,0,OriginalRow-Row, OriginalColumn)
图像拼接

  最关键的一步是调用图像拼接函数。调用拼接函数之前将需要拼接的图像打入数组。

gen_empty_obj (Images) 
concat_obj (Images,ImagePart1, Images)
concat_obj (Images,ImagePart2, Images)
tile_images_offset (Images, TiledImage, [0,ImagePart2Height], [0,0],[-1,-1], [-1,-1], [-1,-1], [-1,-1], ImagePart1Width,ImagePart1Height+ ImagePart2Height)
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值