使用 python 将 tiff 堆栈加载到 numpy 数组中

2023-12-28

我在 .tif 文件方面遇到了一些问题。我确信这只是一个我无法解决的小问题(请记住,我是一个相对较新的程序员)。

基本上:我准备了大小为 64x64xn 的 .tif 文件(n 最多 1000)。该图像只是包含所有这些切片的单个文件。我想将图像加载到(多维)numpy 数组中。我努力了:

from PIL import Image as pilimage

file_path=(D:\luca\test\test.tif)
print("The selected stack is a .tif")
dataset = pilimage(file_path)
tiffarray = np.array(dataset)
expim = tiffarray.astype(np.double);
print(expim.shape)

和其他东西(如 tifffile)。我似乎只能读取堆栈的第一片。 “expim”是否可以包含保存在 tiff 堆栈中的所有信息?


我不确定是否有办法让 PIL 打开 tiff 堆栈的多个切片。

但是,如果您不必使用 PIL,则还有一种替代方法scikit 图像 http://scikit-image.org/,默认情况下从 tiff 堆栈中打开多个切片。以下是如何使用 scikit-image 将 tiff 堆栈加载到 Numpy 数组中的一些示例代码:

>>> from skimage import io
>>> im = io.imread('an_image.tif')
>>> print(im.shape)
(2, 64, 64)

请注意,imread 函数将图像直接加载到 Numpy 数组中。此外,结果数组的维度是有序的 (z, y, x),其中 z 表示深度,y 表示高度,x 表示宽度。因此,要从堆栈中获取单个切片,您所要做的就是:

>>> print(im[1].shape)
(64, 64)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 python 将 tiff 堆栈加载到 numpy 数组中 的相关文章

随机推荐

  • 登录后如何转发到正确的URL

    我有一个网站 其中有一个包含日志列表的网页 现在我通常会为某些用户提供访问该页面的链接 例如 http 172 20 22 77 someapp results htm id 45 http 172 20 22 77 someapp res
  • 如何阻止 ggrepel 标签在 R/ggplot2 中的 gganimate 帧之间移动?

    我想在 ggplot 中的行尾添加标签 避免它们重叠 并避免它们在动画期间移动 到目前为止 我可以将标签放在正确的位置并使用geom text 但是标签重叠 或者我可以使用以下方法防止它们重叠geom text repel但标签没有出现在我
  • 如何在 Sublime Text 2 和 3 中通过键盘使用侧边栏?

    使用时崇高文本2我们倾向于打开side bar浏览我们项目中的文件 文件夹 为此我们可以使用热键ctrl k ctrl b 在窗口中 然而 一旦我们进入side bar we 无法与键盘一起使用 例如箭头 我们必须坚持用我们自己的鼠标来使用
  • PHP从关联数组中删除元素

    我有一个 PHP 数组 看起来像这样 Index Key Value 0 1 Awaiting for Confirmation 1 2 Assigned 2 3 In Progress 3 4 Completed 4 5 Mark As
  • 更改 Foreach 顺序?

    无论如何 是否可以从末尾到开头而不是从开头到末尾遍历列表 最好不重新排序列表 using System Linq foreach var item in source Reverse Edit 如果您要专门处理某个问题 还需要执行一个步骤L
  • 对 NULL 值(或未定义)指针进行 Realloc

    我正在读关于realloc http en cppreference com w c memory realloc并对那里提到的一点感到困惑 考虑下面的代码 include
  • Android:使用 junit 4.13 时未解析的参考

    将 gradle 依赖项中的 junit 版本更新到 4 13 后 类和注释如Assert Testjunit包下的 等在我的代码中使用时显示为红色 棉绒检查说 Unresolved reference
  • Intent过滤器浏览器android:pathPrefix url参数

    所以我希望我的活动能够在意图 浏览器 调用链接时捕获 http host info username samplename 而不是当 http host info username noname 这是我来自 AndroidManifest
  • 与元素类型“p:dataList”关联的属性“pt:data-inset”的前缀“pt”未绑定

    我有以下 Primefaces 页面和控制器 Page
  • 理解 Grails 中的 withNewSession

    首先grails的文档对withNewSession的解释如下 https grails github io grails doc latest ref Domain 20Classes withNewSession html Defn 提
  • 什么时候最好使用正则表达式而不是基本字符串分割/子字符串?

    似乎每当出现我需要字符串的一部分 有关所述字符串的信息等的情况时 我都会定期选择使用字符串解析还是正则表达式 出现这种情况的原因是我们正在评估肥皂头的操作 after它已通过 WCF 的 OperationContext 对象解析为可管理的
  • 创建一个有效的字数统计器,包括中文/日文和其他重音语言

    在尝试弄清楚如何对字符串进行有效的单词计数器之后 我了解了 PHP 的现有函数str word count http php net manual en function str word count php但不幸的是它没有做我需要它做的事
  • 将空值插入 cassandra

    我有一些字段存储到 Cassandra 中 但其中一些字段在任何给定点都可能为空 由于它们的数量相当多 如果我在将它们添加到 INSERT 之前不检查每一个是否为空 它会使代码更具可读性 这样做有什么坏处吗 EDIT 我找到了一张 jira
  • 使用 python requests 库进行谷歌搜索

    我尝试过查找 但所有其他答案似乎都在使用 urllib2 我刚刚开始尝试使用请求 但我仍然不太清楚如何从页面发送或请求其他内容 例如 我将有 import requests r requests get http google com 但我
  • Apache POI 将系列名称添加到 LineChart 中

    我正在 Excel 文档中使用 Apache POI 创建折线图 据我设法实现的目标如下图所示 我使用 Apache svn 中的示例编写了代码 所以我当前的方法如下所示 Drawing drawing question createDra
  • 从有限集中进行朴素随机选择的 O 值是多少?

    这个问题 https stackoverflow com questions 1293609 randomize value in javascript从有限集中获取随机值让我思考 人们想要从一组 Y 值中检索 X 个唯一值是很常见的 例如
  • 在 C# 中使用时间跨度简化 if else 条件

    我必须创建一份实时报告 为此 我必须为特定日期的每个小时编写条件 在下面的代码中 条件检查当前星期几 然后检查当前时间 并据此生成报告 protected void sample TimeSpan zerothHour new TimeSp
  • 从 z3 模型中仅提取一个值

    我正在寻找相当于 z3 源 API获取价值 例如 当我有以下查询时 我可以轻松指定我想要查看哪些值 declare const s1 String declare const s2 String assert 8 str len s1 as
  • Android 2.2 SSL 客户端证书错误?

    我的问题 有没有人在具有多个证书链的 Android 2 1 2 2 中成功验证了带有客户端证书的 SSL 连接 细节 我正在尝试为Android平台实现客户端证书身份验证 StackOverflow 中已经有很多关于如何使用 KeySto
  • 使用 python 将 tiff 堆栈加载到 numpy 数组中

    我在 tif 文件方面遇到了一些问题 我确信这只是一个我无法解决的小问题 请记住 我是一个相对较新的程序员 基本上 我准备了大小为 64x64xn 的 tif 文件 n 最多 1000 该图像只是包含所有这些切片的单个文件 我想将图像加载到