Source code for draugr.opencv_utilities.color_space.color
import warnings
import cv2
from draugr.opencv_utilities.namespaces.color_conversion_enum import (
ColorConversionEnum,
)
__all__ = ["num_channels", "is_singular_channel", "to_color"]
[docs]def num_channels(image) -> int:
"""
:param image:
:type image:
:return:
:rtype:
"""
return image.shape[-1] if image.ndim == 3 else 1
[docs]def is_singular_channel(image) -> bool:
"""
:param image:
:type image:
:return:
:rtype:
"""
return num_channels(image) == 1
[docs]def to_color(image, conversion: ColorConversionEnum = ColorConversionEnum.gray2bgr):
"""
convert from the default bgr cv2 format to gray, using a single component
:param conversion:
:type conversion:
:param image:
:type image:
:return:
:rtype:
"""
if is_singular_channel(image):
conversion = ColorConversionEnum(conversion)
image = cv2.cvtColor(image, conversion)
else:
warnings.warn(f"expected singular image was shape {image.shape}")
return image