将numpy 32int保存到多层tiff

时间:2018-06-09 08:01:02

标签: python numpy tiff

我正在处理科学图像,其中某些东西被称为“线”,有一系列(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)

如何将“layers”数组保存到一个多层tiff文件中?

非常感谢

0 个答案:

没有答案