Conversion Utils¶
supervision.utils.conversion.cv2_to_pillow(image: npt.NDArray[np.uint8]) -> Image.Image
¶
Converts an OpenCV image into a Pillow image, reordering channels from OpenCV's BGR(A) convention to Pillow's RGB(A).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
NDArray[uint8]
|
OpenCV image. Accepted shapes:
- |
required |
Returns:
| Type | Description |
|---|---|
Image
|
Input image converted to Pillow format. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If |
Examples:
>>> import numpy as np
>>> from supervision.utils.conversion import cv2_to_pillow
>>> scene = np.zeros((10, 10, 3), dtype=np.uint8)
>>> scene[:, :, 2] = 255
>>> image = cv2_to_pillow(scene)
>>> image.size
(10, 10)
>>> image.getpixel((0, 0))
(255, 0, 0)
Source code in src/supervision/utils/conversion.py
supervision.utils.conversion.pillow_to_cv2(image: Image.Image) -> npt.NDArray[np.uint8]
¶
Converts Pillow image into OpenCV image, handling RGB -> BGR conversion. Palette images are first expanded to RGB so palette indices are resolved to their actual colors. RGBA images are converted to BGR, matching OpenCV by dropping the alpha channel.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
Image
|
Pillow image in RGB, RGBA, grayscale, or palette mode. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[uint8]
|
Input image converted to OpenCV format. |
Examples:
>>> from PIL import Image
>>> from supervision.utils.conversion import pillow_to_cv2
>>> image = Image.new("RGB", (10, 10), color=(255, 0, 0))
>>> scene = pillow_to_cv2(image)
>>> scene.shape
(10, 10, 3)
>>> scene[0, 0].tolist()
[0, 0, 255]
Source code in src/supervision/utils/conversion.py
supervision.utils.conversion.ensure_cv2_image_for_annotation(annotate_func: F) -> F
¶
Source code in src/supervision/utils/conversion.py
supervision.utils.conversion.ensure_pil_image_for_annotation(annotate_func: F) -> F
¶
Source code in src/supervision/utils/conversion.py
supervision.utils.conversion.images_to_cv2(images: list[npt.NDArray[np.uint8] | Image.Image]) -> list[npt.NDArray[np.uint8]]
¶
Converts images provided either as Pillow images or OpenCV images into OpenCV format.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
list[NDArray[uint8] | Image]
|
Images to be converted |
required |
Returns:
| Type | Description |
|---|---|
list[NDArray[uint8]]
|
List of input images in OpenCV format (with order preserved). |