我制作了一个3D数组,其中包含数字(0〜4)。我想要的是将3D数组保存为2D图像堆栈(如果可能,保存* .tiff文件)。我该怎么办?
import numpy as np
a = np.random.randint(0,5, size=(100,100,100))
a = a.astype('int8')
答案 0 :(得分:0)
这应该有效。我还没有测试过,但是我已经使用这种方法将彩色图像分离为RGB切片,并且在这里它应该以几乎相同的方式工作,假设您不想首先对这些像素值做任何事情。 (它们将非常接近图像中的相同颜色)。
import imageio
import numpy as np
a = np.random.randint(0,5, size=(100,100,100))
a = a.astype('int8')
for i in range(100):
newimage = a[:, :, i]
imageio.imwrite("path/to/image%d.tiff" %i, newimage)
答案 1 :(得分:0)
“堆栈”到底是什么意思?当您将tiff
称为输出格式时,我假设在这里您希望将数据作为多帧tiff放在一个文件中。
这可以通过imageio
的{{1}}函数轻松完成:
mimwrite()
请注意,此功能依赖于将几个帧的计数器作为第一个参数,并将x和y设为跟随。另请参见其this example。
但是,如果我错了,并且您希望拥有n个(例如100个)单独的tif文件,则还可以在循环中使用常规的# import numpy as np
# a = np.random.randint(0,5, size=(100,100,100))
# a = a.astype('int8')
import imageio
imageio.mimwrite("image.tiff", a)
函数:
imwrite()
答案 2 :(得分:0)
实际上,我做到了。这是我的代码。 使用此代码,我不需要堆叠一系列2D图像(数组)。 制作一个3D阵列并保存。这就是我所做的。
buildTileFilter(){
//Can I grab the route from the html element without having to create a url?
let url = '{{route('report.file.list)}}';
let query_string = url.search;
let search_params = new URLSearchParams(query_string);
search_params.set('f[]', this.locationId);
url.search = search_params.toString();
let new_url = url.toString();
return new_url;
}