Сохранение numpy 32int в многослойный TIFF - PullRequest
0 голосов
/ 09 июня 2018

Я работаю с научными изображениями, где нечто, называемое «Линия», имеет последовательность (n) изображений в градациях серого.Что я делаю, я окрашиваю изображения каждой строки определенным цветом, а затем объединяю соответствующее изображение каждой строки (т.е. я объединяю image_0 каждой строки в одно изображение, а затем image_1 каждой строки в одно и т. Д.).).В результате получается цветная объединенная последовательность (n) изображений.

Моя цель сейчас состоит в том, чтобы сохранить эту последовательность в один файл формата TIFF, чего я пока не смог.

def load_image(infilename):
    img = Image.open(infilename)
    img.load()
    data = np.asarray(img, dtype="int32")
    return data

def merge_lines_images(lines, colors):
    rotations_count = len(lines[0])
    layers = []
    for rotation in range(0, rotations_count):
        images_to_merge = []
        for line in lines:
            img = load_image(line[rotation])
            images_to_merge.append(img)

        colored_images = []
        for img_index, img in enumerate(images_to_merge):
            color = colors[img_index]

            r = img * color[0] / 255

            g = img * color[1] / 255

            b = img * color[2] / 255

            rgb = np.dstack((r,g,b))
            colored_images.append(rgb)

        merged_image = np.zeros(colored_images[0].shape)

        for img in colored_images:
            merged_image += img

        clipped = np.clip(merged_image, 0, 255, out=merged_image)

        layers.append(clipped)

Каксохранить массив «layer» в один многослойный TIFF-файл?

Большое спасибо

...