【Halcon】示例程序学习——append_channel / tile_channels

Name:

1、append_channel——将其他矩阵(通达)附加到图像

2、tile_channels——多张图像平铺成一个大图像

signature:

1、append_channel(MultiChannelImage, Image : ImageExtended : : )

2、tile_channels(Image : TiledImage : NumColumns, TileOrder : )

Description:

1、运算符append_channel将图像Image的矩阵添加到图像MultiChannelImage的矩阵上。结果是一个包含与MultiChannelImage和image的组合一样多的矩阵(通道)的图像。输出图像的定义域是两个输入图像的定义域的交集。MultiChannelImage可能只是一个区域然后被解释为没有通道的图像定义域。没有为多通道图像分配新的存储空间。相反,创建的多通道图像包含对现有输入图像的引用。

2、tile_channels将由多个通道组成的图像平铺成一个大的单通道图像。输入图像image包含相同大小的Num个图像,这些图像存储在各个通道中。输出图像TiledImage包含单个通道图像,其中Num输入通道已平铺到NumColumns列中。特别是,这意味着tile_channels无法平铺彩色图像。为此,可以使用tile_images。参数TileOrder确定在尚未由NumColumns确定的情况下(即,如果NumColumns!=1和NumColumns…=Num)将图像复制到输出中的顺序。如果TileOrder='horizontal',则在水平方向复制图像,即图像的第二个通道将在第一个通道的右侧。如果TileOrder=“垂直”,则在垂直方向复制图像,即图像的第二个通道将位于第一个通道下方。TiledImage的域是通过将Image的域复制到输出图像中的相应位置来获得的。如果Num不是NumColumns的倍数,则输出图像的右下角将具有未定义的灰度值。输出域将反映这一点。

Execution Information:

append_channel

1、支持计算设备上的对象

2、多线程类型:可重入(与非独占运算符并行运行)

3、多线程范围:全局(可以从任意线程调用)

4、未经并行处理

tile_channels

1、多线程类型:可重入(与非独占运算符并行运行)。
2、多线程作用域:全局(可以从任何线程调用)。
3、在元组级别上自动并行化。

Parameter:

append_channel

MultiChannelImage(input_object)  ->  object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real / complex / vector_field)

Image(input_obejct)  -> object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real / complex / vector_field)

ImageExtended(output_object)  -> object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real / complex / vector_field)

 

tile_channels

Image(Input_object)  -> object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)

TiledImage(output_object)  -> object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)

NumColumns(input_contorl)  -> integer

  Default value: 1

  Suggested values: 1, 2, 3, 4, 5, 6, 7

  Restriction: NumColumns >= 1

TileOrder(input_control)  -> string

  Default value: 'vertical'

  List of values: 'horizaontal', 'vertical' 

Alternatives:

append_channel

compose2, compose3, compose4, compose5

tile_channels

tile_image, tile_image_offset

Example:

read_image (Xing1, 'xing/xing000')
read_image (Xing2, 'xing/xing050')
read_image (Xing3, 'xing/xing100')
read_image (Xing4, 'xing/xing150')
read_image (Xing5, 'xing/xing200')
read_image (Xing6, 'xing/xing250')
read_image (Xing7, 'xing/xing300')
get_image_size (Xing1, Width, Height)
gen_rectangle1 (Image, 0, 0, Height - 1, Width - 1)
append_channel (Image, Xing1, Image)
append_channel (Image, Xing2, Image)
append_channel (Image, Xing3, Image)
append_channel (Image, Xing4, Image)
tile_channels (Image, TiledImage1, 1, 'vertical')
tile_channels (Image, TiledImage2, 2, 'vertical')
tile_channels (Image, TiledImage3, 2, 'horizontal')
tile_channels (Image, TiledImage4, 4, 'horizontal')
append_channel (Image, Xing5, Image)
append_channel (Image, Xing6, Image)
append_channel (Image, Xing7, Image)
tile_channels (Image, TiledImage5, 5, 'horizontal')
tile_channels (Image, TiledImage6, 3, 'vertical')
tile_channels (Image, TiledImage7, 5, 'vertical')

 

posted @ 2024-05-13 14:18  VanGoghpeng  阅读(26)  评论(0编辑  收藏  举报