Skip to main content

Convert your grayscale semantic masks (vistas/cityscape style) to RGB colored masks wiht built-in or custom pallets

Project description

License: MIT Generic badge DOI

Grayscale to Color Semantic Mask Converotr

Bug Fixes

version 0.4.3

  • updated for use with pytorch and numpy.
  • added deepglob dataset pallet.

version 0.4.1

Fixed ValueError raised while using Custom color pallet.

Dependencies

numpy
cv2
tensorflow # only if using backend='tf'
python >= 3.6

Installation

pip install gray2color

This lib converts the grayscale semantic masks obtained at the output a CNN and fills it with colors for example in case of cityscape dataset you have 30 channels at the output of CNN and after using argmax to create one channel semantic mask you get the following output

alt text which you can use for measuring IOU, Dice or other evaluation metrics. But it is a bit difficult for human visualization so this package converts the above output to following ouptut easy to visualize. alt text

Usage

import cv2
from gray2color import gray2color

'''
two backends
'tf' # for tesnorflow
'np' # for numpy/pytorch
'''
mask = cv2.imread('../gray.png', 0)
rgb = gray2rgb(mask, use_pallet='cityscape', custom_pallet=None, backend='np')

Returns

A uint8 image with values ranging from [0, 255] you can save via

import cv2

rgb = cv2.cvtColor(rgb, cv2.COLOR_BGR2RGB)  #   becaues cv2 will change color channels before writing
cv2.imwrite('../rgb.png', rgb)

Available Pallets

Available Pallets are ade20k, cityscape, lip, pannuke, pascal, vistas for details on all above pallets and their corresponding names visit here

Usage with custom pallets

You can also define your custom color Pallets as follows

# values are in order [R, G, B] ranging from [0, 255]

c_pallet = np.array([[[128, 64, 128],
                    [244, 35, 232],
                    [70, 70, 70],
                    [102, 102, 156],
                    [190, 153, 153]]], np.uint8) / 255
rgb = gray2rgb(mask, use_pallet=None, custom_pallet=c_pallet, backend='np')

Raises Errors

PalletNotDefined: if pallet is not specified

NotEnoughColors: if grayscale mask has more classes present than the colors in the pallet

For more details visit GitHub

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gray2color-0.4.3.tar.gz (10.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page