【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')