|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"""Saves an annotation as one png image. |
|
|
|
This script saves an annotation as one png image, and has the option to add |
|
colormap to the png image for better visualization. |
|
""" |
|
|
|
import numpy as np |
|
import PIL.Image as img |
|
import tensorflow as tf |
|
|
|
from deeplab.utils import get_dataset_colormap |
|
|
|
|
|
def save_annotation(label, |
|
save_dir, |
|
filename, |
|
add_colormap=True, |
|
normalize_to_unit_values=False, |
|
scale_values=False, |
|
colormap_type=get_dataset_colormap.get_pascal_name()): |
|
"""Saves the given label to image on disk. |
|
|
|
Args: |
|
label: The numpy array to be saved. The data will be converted |
|
to uint8 and saved as png image. |
|
save_dir: String, the directory to which the results will be saved. |
|
filename: String, the image filename. |
|
add_colormap: Boolean, add color map to the label or not. |
|
normalize_to_unit_values: Boolean, normalize the input values to [0, 1]. |
|
scale_values: Boolean, scale the input values to [0, 255] for visualization. |
|
colormap_type: String, colormap type for visualization. |
|
""" |
|
|
|
if add_colormap: |
|
colored_label = get_dataset_colormap.label_to_color_image( |
|
label, colormap_type) |
|
else: |
|
colored_label = label |
|
if normalize_to_unit_values: |
|
min_value = np.amin(colored_label) |
|
max_value = np.amax(colored_label) |
|
range_value = max_value - min_value |
|
if range_value != 0: |
|
colored_label = (colored_label - min_value) / range_value |
|
|
|
if scale_values: |
|
colored_label = 255. * colored_label |
|
|
|
pil_image = img.fromarray(colored_label.astype(dtype=np.uint8)) |
|
with tf.gfile.Open('%s/%s.png' % (save_dir, filename), mode='w') as f: |
|
pil_image.save(f, 'PNG') |
|
|