QQ登录

只需一步,快速开始

halcon gen_projective_mosaic函数介绍

[ 复制链接 ]
gen_projective_mosaic(Images : MosaicImage : StartImage, MappingSource, MappingDest, HomMatrices2D, StackingOrder, TransformDomain : MosaicMatrices2D)


gen_projective_mosaic将输入图像Images 组合成马赛克图像。
图像的相对位置由3x3投影变换矩阵定义。
数组HomMatrices2D包含这些线性化矩阵的序列。
MappingSource和MappingDest中的值是对应矩阵所应用的图像的索引。
MappingSource=4, MappingDest=7表示矩阵描述了图像4到图像7射影平面的变换。
MappingSource和MappingDest给出的图像对之间的转换矩阵通常由proj_match_points_ransac确定。


与通常访问图像对象的操作符(例如select_obj)一样,图像的编号从1开始,
即、MappingSource、MappingDest、StartImage和StackingOrder必须是图像Images 中的图像数量和1之间的值。

参数StartImage表示哪个图像定义了最终图像的图像平面,
即哪个输入图像在输出图像中保持不变。
这通常是位于图像镶嵌中心附近的图像。


自动选择MosaicImage的原点及其大小,使所有输入图像都完全可见。

将图像添加到马赛克中的顺序由数组MosaicImage 给出。

这个数组中的第一个索引将位于图像堆栈的底部,而最后一个索引将位于顶部。
如果给定的是“default”而不是整数数组,
则使用规范顺序(图像中 Images图像顺序)。


参数TransformDomain可以用来确定图像的域是否也被转换。
由于域的转换需要运行时间,因此应该使用这个参数来指定是否需要这样做。
如果将TransformDomain设置为“false”,则忽略输入图像的域,并转换完整的图像。

在输出时,参数MosaicMatrices2D包含一组3x3投影变换矩阵,

用于描述 Images中的每个图像到其在马赛克中的位置的映射。


参数:
Images,MosaicImage输入,输出的图像
StartImage,MappingSource,MappingDest中心输入图像的索引,变换的源图像的索引,变换的目标图像的索引。
HomMatrices2D3x3射影变换矩阵的数组。
StackingOrder马赛克图像的叠加顺序。
TransformDomain输入图像区域是否也转换的标识,
MosaicMatrices2D由3x3投影变换矩阵组成的数组,用于确定图像在马赛克中的位置。


例程:
gen_empty_obj (Images)
for J := 1 to 6 by 1
    read_image (Image, 'mosaic/pcb_'+J$'02')
    concat_obj (Images, Image, Images)
endfor
From := [1,2,3,4,5]
To := [2,3,4,5,6]
Num := |From|
ProjMatrices := []
for J := 0 to Num-1 by 1
    F := From[J]
    T := To[J]
    select_obj (Images, ImageF, F)
    select_obj (Images, ImageT, T)
    points_foerstner (ImageF, 1, 2, 3, 200, 0.3, 'gauss', 'false', \
                      RowJunctionsF, ColJunctionsF, CoRRJunctionsF, \
                      CoRCJunctionsF, CoCCJunctionsF, RowAreaF, \
                      ColAreaF, CoRRAreaF, CoRCAreaF, CoCCAreaF)
    points_foerstner (ImageT, 1, 2, 3, 200, 0.3, 'gauss', 'false', \
                      RowJunctionsT, ColJunctionsT, CoRRJunctionsT, \
                      CoRCJunctionsT, CoCCJunctionsT, RowAreaT, \
                      ColAreaT, CoRRAreaT, CoRCAreaT, CoCCAreaT)
    proj_match_points_ransac (ImageF, ImageT, RowJunctionsF, \
                              ColJunctionsF, RowJunctionsT, \
                              ColJunctionsT, 'ncc', 21, 0, 0, 480, 640, \
                              0, 0.5, 'gold_standard', 1, 4364537, \
                              ProjMatrix, Points1, Points2)
    ProjMatrices := [ProjMatrices,ProjMatrix]
endfor
gen_projective_mosaic (Images, MosaicImage, 2, From, To, ProjMatrices, \
                       'default', 'false', MosaicMatrices2D)
  

halcon从自学到接项目视频教程,另外再赠送全网最全资源  

  

欢迎围观我录制的一套halcon自学视频教程(进入)





回复

使用道具 举报

快速回复 返回列表 客服中心 搜索