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: 7 1 4 2 0 1: 1 3 6 6 1 2: 1 1 6 2 5 3: 1 4 1 4 3 4: 3 7 0 6 0 >>> print(Image.strhcat(A, widths=2)) 0 1 2 3 4 - - - - - 0: 7 1 4 2 0 1: 1 3 6 6 1 2: 1 1 6 2 5 3: 1 4 1 4 3 4: 3 7 0 6 0 >>> B = Image.Random(size=(5,5), maxval=9) >>> print(Image.strhcat(A, B)) 0 1 2 3 4 0 1 2 3 4 - - - - - - - - - - 0: 7 1 4 2 0 | 5 3 3 5 5 1: 1 3 6 6 1 | 7 7 3 3 3 2: 1 1 6 2 5 | 1 1 4 6 7 3: 1 4 1 4 3 | 2 6 2 7 6 4: 3 7 0 6 0 | 1 0 8 5 7 >>> print(Image.strhcat(A, B, labels=("A:", "B:"))) A: B: 0 1 2 3 4 0 1 2 3 4 - - - - - - - - - - 0: 7 1 4 2 0 | 5 3 3 5 5 1: 1 3 6 6 1 | 7 7 3 3 3 2: 1 1 6 2 5 | 1 1 4 6 7 3: 1 4 1 4 3 | 2 6 2 7 6 4: 3 7 0 6 0 | 1 0 8 5 7
The number of rows in each image must be the same, but the number of columns can vary.
- Seealso: