Skip to content

tile_channelsTileChannelsTileChannelstile_channelstile_channels🔗

Short description🔗

tile_channelsTileChannelsTileChannelstile_channelstile_channels — Tile multiple images into a large image.

Signature🔗

tile_channels( image Image, out image TiledImage, integer NumColumns, string TileOrder )void TileChannels( const HObject& Image, HObject* TiledImage, const HTuple& NumColumns, const HTuple& TileOrder )static void HOperatorSet.TileChannels( HObject image, out HObject tiledImage, HTuple numColumns, HTuple tileOrder )def tile_channels( image: HObject, num_columns: int, tile_order: str ) -> HObject

Herror tile_channels( const Hobject Image, Hobject* TiledImage, const Hlong NumColumns, const char* TileOrder )

Herror T_tile_channels( const Hobject Image, Hobject* TiledImage, const Htuple NumColumns, const Htuple TileOrder )

HImage HImage::TileChannels( Hlong NumColumns, const HString& TileOrder ) const

HImage HImage::TileChannels( Hlong NumColumns, const char* TileOrder ) const

HImage HImage::TileChannels( Hlong NumColumns, const wchar_t* TileOrder ) const (Windows only)

HImage HImage.TileChannels( int numColumns, string tileOrder )

Description🔗

tile_channelsTileChannels tiles an image consisting of multiple channels into a large single-channel image. The input image Imageimageimage contains Num images of the same size, which are stored in the individual channels. All channels of Imageimageimage must be of the same type. The output image TiledImagetiledImagetiled_image contains a single channel image, where the Num input channels have been tiled into NumColumnsnumColumnsnum_columns columns. In particular, this means that tile_channelsTileChannels cannot tile color images. For this purpose, tile_imagesTileImages can be used. The parameter TileOrdertileOrdertile_order determines the order in which the images are copied into the output in the cases in which this is not already determined by NumColumnsnumColumnsnum_columns (i.e., if NumColumnsnumColumnsnum_columns != 1 and NumColumnsnumColumnsnum_columns != Num). If TileOrdertileOrdertile_order = 'horizontal'"horizontal" the images are copied in the horizontal direction, i.e., the second channel of Imageimageimage will be to the right of the first channel. If TileOrdertileOrdertile_order = 'vertical'"vertical" the images are copied in the vertical direction, i.e., the second channel of Imageimageimage will be below the first channel. The domain of TiledImagetiledImagetiled_image is obtained by copying the domain of Imageimageimage to the corresponding locations in the output image. If Num is not a multiple of NumColumnsnumColumnsnum_columns the output image will have undefined gray values in the lower right corner of the image. The output domain will reflect this.

Execution information🔗

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Automatically parallelized on tuple level.

Parameters🔗

Imageimageimage (input_object) (multichannel-)image(-array) → object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)HObject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)HImage (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)HObject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)Hobject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)

Input image.

TiledImagetiledImagetiled_image (output_object) singlechannelimage(-array) → object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)HObject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)HImage (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)HObject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)Hobject * (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)

Tiled output image.

NumColumnsnumColumnsnum_columns (input_control) integer → (integer)HTuple (Hlong)HTuple (int / long)intHtuple (Hlong)

Number of columns to use for the output image.

Default: 11
Suggested values: 1, 2, 3, 4, 5, 6, 71, 2, 3, 4, 5, 6, 7
Restriction: NumColumns >= 1

TileOrdertileOrdertile_order (input_control) string → (string)HTuple (HString)HTuple (string)strHtuple (char*)

Order of the input images in the output image.

Default: 'vertical'"vertical"
List of values: 'horizontal', 'vertical'"horizontal", "vertical"

Example🔗

(HDevelop)

* Grab 5 single-channel images and stack them vertically.
gen_rectangle1 (Image, 0, 0, Height-1, Width-1)
for I := 1 to 5 by 1
    grab_image_async (ImageGrabbed, AcqHandle, -1)
    append_channel (Image, ImageGrabbed, Image)
endfor
tile_channels (Image, TiledImage, 1, 'vertical')

Result🔗

tile_channelsTileChannels returns 2 (H_MSG_TRUE) if all parameters are correct and no error occurs during execution. If the input is empty the behavior can be set via set_system(::'no_object_result',<Result>:). If necessary, an exception is raised.

Combinations with other operators🔗

Combinations

Possible predecessors

append_channelAppendChannel

Alternatives

tile_imagesTileImages, tile_images_offsetTileImagesOffset

See also

change_formatChangeFormat, crop_partCropPart, crop_rectangle1CropRectangle1

Module🔗

Foundation