"""Check if image files exist"""
    for path in [args.content_image, args.style_image]:
        if path is None or not os.path.isfile(path):
            print("Image file {} does not exist.".format(path))
            exit(1)

    content_image = load_image(args.content_image)
    style_image = load_image(args.style_image)

    # use existing if available
    if (load_segmentation):
        print("Load segmentation from files.")
        content_segmentation_image = cv2.imread(content_segmentation_filename)
        style_segmentation_image = cv2.imread(style_segmentation_filename)
        content_segmentation_masks = extract_segmentation_masks(content_segmentation_image)
        style_segmentation_masks = extract_segmentation_masks(style_segmentation_image)

    # otherwise compute it
    else:
        print("Create segmentation.")
        content_segmentation, style_segmentation = compute_segmentation(args.content_image, args.style_image)

        cv2.imwrite(change_filename(args.seg_dir, args.content_image, '_seg_raw', '.png'), content_segmentation)
        cv2.imwrite(change_filename(args.seg_dir, args.style_image, '_seg_raw', '.png'), style_segmentation)

        content_segmentation_masks, style_segmentation_masks = merge_segments(content_segmentation, style_segmentation,
                                                                              args.semantic_thresh, args.similarity_metric)

    cv2.imwrite(change_filename(args.seg_dir, args.content_image, '_seg', '.png'),
                reduce_dict(content_segmentation_masks, content_image))
Пример #2
0
from operator import itemgetter

import networkx as nx
import nltk
import numpy as np
import tensorflow as tf
from os.path import join

from components.PSPNet.model import load_color_label_dict
from components.path import WEIGHTS_DIR

content_segmentation, style_segmentation = compute_segmentation(
    "/home/skhan22/PoeticStyleTransfer/data2/summer_lake/2108832-1366x768-[DesktopNexus.com].jpg",
    "/home/skhan22/PoeticStyleTransfer/data2/summer_lake/2504-1271617411m0fL.jpg"
)

print(content_segmentation.shape)
print(style_segmentation.shape)

# load color - label mapping
color_label_dict = load_color_label_dict()
label_color_dict = {
    label: color
    for color, labels in color_label_dict.items() for label in labels
}
colors = color_label_dict.keys()

# Extract the boolean mask for every color
content_masks = extract_segmentation_masks(content_segmentation, colors)
style_masks = extract_segmentation_masks(style_segmentation, colors)