Image.strhcat#
- classmethod Image.strhcat(*images: Image, widths: int | Sequence[int] = 1, arraysep: str = ' |', labels: Sequence[str] | None = None) str[source][source]#
Format several small images concatenated horizontally
- Parameters:
images (
Imageinstances) – one or more images to be formatted horizontally concatenatedwidths (int or list of ints, optional) – number of digits for the formatted array elements, defaults to 1. If scalar applies to all images, if list applies to each image.
arraysep (str, optional) – separator between arrays, defaults to
" |"labels (list of str, optional) – list of labels for each array, defaults to None
- Returns:
multiline string containing formatted arrays
- Return type:
str
- Raises:
ValueError – if the arrays have different numbers of rows
AUTO_EDIT
For image processing this is useful for displaying small test images.
The arrays are formatted and concatenated horizontally with a vertical separator. Each array has a header row that indicates the column number. Each row has a header column that indicates the row number.
>>> from machinevisiontoolbox import Image >>> A = Image.Random(size=(5,5), maxval=9) >>> print(Image.strhcat(A)) 0 1 2 3 4 - - - - - 0: 5 0 4 3 4 1: 4 2 2 2 2 2: 1 5 3 6 4 3: 0 7 3 7 0 4: 2 0 8 0 4 >>> print(Image.strhcat(A, widths=2)) 0 1 2 3 4 - - - - - 0: 5 0 4 3 4 1: 4 2 2 2 2 2: 1 5 3 6 4 3: 0 7 3 7 0 4: 2 0 8 0 4 >>> B = Image.Random(size=(5,5), maxval=9) >>> print(Image.strhcat(A, B)) 0 1 2 3 4 0 1 2 3 4 - - - - - - - - - - 0: 5 0 4 3 4 | 8 2 5 7 8 1: 4 2 2 2 2 | 8 5 8 4 1 2: 1 5 3 6 4 | 5 4 7 0 7 3: 0 7 3 7 0 | 3 5 1 4 5 4: 2 0 8 0 4 | 3 8 1 7 0 >>> print(Image.strhcat(A, B, labels=("A:", "B:"))) A: B: 0 1 2 3 4 0 1 2 3 4 - - - - - - - - - - 0: 5 0 4 3 4 | 8 2 5 7 8 1: 4 2 2 2 2 | 8 5 8 4 1 2: 1 5 3 6 4 | 5 4 7 0 7 3: 0 7 3 7 0 | 3 5 1 4 5 4: 2 0 8 0 4 | 3 8 1 7 0
The number of rows in each image must be the same, but the number of columns can vary.
- Seealso: