コード例 #1
0
    def load_data(self,
                  path_data='./datasets/CIHP',
                  path_list_image='./datasets/CIHP/list/val.txt',
                  path_list_image_id=None,
                  size_image=(256, 256)):

        self.path_data = path_data
        self.path_list_image = path_list_image
        self.path_list_image_id = path_list_image_id

        # set number of prediction iterations
        with open(self.path_list_image, 'r') as f:
            self.n_step = len(f.readlines())

        # graph definition
        with self.graph_pgn.as_default() as g:
            # Load reader.
            with tf.name_scope("create_inputs"):
                reader = utils.ImageReader(self.path_data,
                                           self.path_list_image,
                                           self.path_list_image_id, size_image,
                                           False, False, False, self.coord)
                # image, label, edge_gt = reader.image, reader.label, reader.edge
                self.image = reader.image
                self.image_rev = tf.reverse(self.image, tf.stack([1]))
                self.image_list = reader.image_list
prefix: any string you want.

num_split: any integer you want.
"""

src_image_dir = './segmentation_dataset/img'
src_segmentation_dir = './segmentation_dataset/seg'
dst_dir = './segmentation_dataset'
prefix = 'train'
num_split = 4

img_list = utils.list_getter(src_image_dir)
shuffle(img_list)
img_ext = utils.get_extensions(img_list)
img_reader = utils.ImageReader(img_ext, channels=3)
seg_reader = utils.ImageReader("png", channels=1)
img_list_split = utils.divide_list(img_list, num_split)
os.makedirs(dst_dir, exist_ok=True)


def write_tfrecord(file_list, split_idx):
    if num_split == 1:
        dst_file_name = os.path.join(dst_dir, "%s.tfrecord" % prefix)
    else:
        dst_file_name = os.path.join(
            dst_dir,
            "%s-%03d-of-%03d.tfrecord" % (prefix, split_idx, num_split))
    with tf.python_io.TFRecordWriter(dst_file_name) as tfrecord_writer:
        for image_filename in file_list:
            seg_filename = image_filename.replace(
コード例 #3
0
def scale_image(fileish, width: int) -> Image:
    """ scales image with given width. fileish may be file or path """
    img = utils.ImageReader(fileish)
    orig_width, height = img.getSize()
    aspect = height / orig_width
    return Image(fileish, width=width, height=width * aspect) 
コード例 #4
0
               assumed all images are in a single type of image format (jpg or png), if not the code will return error.
               assumed all images are rgb images.
dst_dir: the folder where tfrecord will be placed.
prefix: any string you want.
num_split: any integer you want.
"""

src_image_dir = './classification_dataset'
dst_dir = './classification_dataset'
prefix = 'train'
num_split = 4

img_list = utils.list_getter(src_image_dir)
shuffle(img_list)
img_ext = utils.get_extensions(img_list)
img_reader = utils.ImageReader(img_ext, channels=3)
class_vs_label = utils.get_class_vs_list(img_list)
img_list_split = utils.divide_list(img_list, num_split)
os.makedirs(dst_dir, exist_ok=True)

with open(os.path.join(dst_dir, 'class_vs_label_info.csv'), 'w') as writer:
    writer.write('name,label\n')
    for k, v in class_vs_label.items():
        writer.write('%s, %d\n' % (k, v))


def write_tfrecord(file_list, gt_dict, split_idx):
    if num_split == 1:
        dst_file_name = os.path.join(dst_dir, "%s.tfrecord" % prefix)
    else:
        dst_file_name = os.path.join(
コード例 #5
0

def plot_images(im_radio, im_ir):
    fig, axes = plt.subplots(1, 2, figsize=(10, 5), constrained_layout=True)
    axes[0].imshow(im_radio, origin="lower")
    axes[1].imshow(im_ir, origin="lower")
    plt.setp(axes, xticks=[], yticks=[])


if len(sys.argv) != 2:
    print(f"USAGE: {sys.argv[0]} image_bin")
    sys.exit(-1)

# base = sys.argv[1].rstrip("_imgs.bin")
base = sys.argv[1].split("_imgs.bin")[0]
imbin = pu.ImageReader(sys.argv[1])
nchan = imbin.data.shape[-1]  # number of image channels (i.e. radio + IR)

outdir = f"{base}_images"
if not os.path.exists(outdir):
    os.makedirs(outdir)

df = pd.read_csv(f"{base}.csv")

for i in range(imbin.num_images):
    fname = df.iloc[i]["filename"]
    outname = os.path.join(outdir, f"{fname}.png")
    print(f"Creating image {i}/{imbin.num_images}: {outname}")
    im_radio = imbin.data[i, :, :, 0]
    if nchan == 2:
        im_ir = imbin.data[i, :, :, 1]
コード例 #6
0
#!/usr/bin/env python

import sys
import string
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import utils as pu
from collections import Counter

base = "FIRST_only"
imread = pu.ImageReader(f"{base}_imgs.bin")
df = pd.read_csv(f"{base}.csv")
mapping = pu.Mapping(f"{base}/som_5_Similarity.bin")
som_height = mapping.som_shape[0]
som_shape = mapping.som_shape

ind = mapping.best_matching_neuron
df["best_match_ind"] = tuple(np.transpose(ind))
df["best_match"] = mapping.best_matching_letter_code
df["best_match_distance"] = mapping.data[tuple([np.arange(mapping.header[3]), *ind])]

i = np.random.randint(0, imread.header[3])
code = df["best_match"].iloc[i]
print(f"Testing image {i}")
print(f"Best matching neuron: {code}")

fig, axes = plt.subplots(1, 2, figsize=(10, 5))
axes[0].imshow(imread.data[i, :, :, 0], cmap="viridis")
axes[1].imshow(mapping.data[i, :, :, 0], cmap="gray")