Source code for draugr.extensions.skimage_utilities
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = "Christian Heider Nielsen"
__doc__ = r"""
Created on 04-04-2021
"""
import warnings
from typing import Any
import numpy
from skimage import color, img_as_ubyte
__all__ = ["rgb_to_grayscale"]
from draugr.numpy_utilities.mixing import mix_channels
[docs]def rgb_to_grayscale(obs: Any) -> Any:
"""Convert a 3-channel color observation image to grayscale and uint8.
Args:
obs (numpy.ndarray): Observation array, conforming to observation_space
Returns:
numpy.ndarray: 1-channel grayscale version of obs, represented as uint8
"""
with warnings.catch_warnings():
# Suppressing warning for possible precision value when converting
# from float64 to uint8
warnings.simplefilter("ignore")
return img_as_ubyte(color.rgb2gray(obs))
if __name__ == "__main__":
def asuijhd():
"""description"""
a = numpy.expand_dims(numpy.eye(5), -1)
b = numpy.expand_dims(numpy.flip(numpy.eye(5), 0), -1)
c = numpy.expand_dims(numpy.ones((5, 5)), -1)
stacked = numpy.swapaxes(numpy.array((a, b, c)), 0, -1)
print(stacked.shape)
print(mix_channels(stacked))
asuijhd()