| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> python 笔记:打开nii格式(nibabel 库) -> 正文阅读 |
|
[人工智能]python 笔记:打开nii格式(nibabel 库) |
1 nii格式介绍?1.0 Analyze 格式在解释NII(NIFTI,neuroimaging information technology initiative)格式之前,我们需要先知道一下Analyze格式。 每一个Analyze格式的数据包含了两个文件:带有二进制图像信息的.img,包含图像元数据的头文件.hdr 但是,Analyze的头文件不能很真实地反应元数据(比如没有方向信息,eg在左边还是在右边),于是NIFTI格式文件应运而生 1.1 组成部分nii格式(nifti格式的扩展)是为多维神经影像学发明的。一个nii格式主要包含三部分:hdr, ext, img
1.2 坐标医学影像数据有两种格式,dicom和nii格式,他们定义了不同的方向? 2 打开图像2.1 ITK-SNAP软件注意:使用这个软件的时候,路径中不能有中文? 三视图? ? 3 nibabel (python库)3.1 基本操作3.1.1 导入nii
一个nibable 图像有三部分组合而成:
3.1.2 获得图像的ndarray类型数据?
?3.1.3 创建新image至少需要一些image 数据 和一个image 坐标转换矩阵(affine)
?? 这里numpy.memmap是内存映像文件。它是一种将磁盘上的非常大的二进制数据文件当做内存中的数组进行处理的方式。它允许将大文件分成小段进行读写,而不是一次性将整个数组读入内存。 memmap也拥有跟普通数组一样的方法,因此,基本上只要是能用于ndarray的算法就也能用于memmap。 3.2? 坐标系和affine在官方文档中,提供了一个人大脑的MRI图像。
3.2.1 体素坐标体素是具有体积的像素。 在上面的代码中,来自 EPI 数据的 slice_0 是来自 3D 图像的 2D 切片。 切片灰度图像中的每个像素也代表一个体素,因为这个 2D 图像代表了 3D 图像中具有一定厚度的切片。 因此,3D 阵列也是体素阵列。 对于任何数组,我们都可以通过索引来选择特定的值。 例如,我们可以像这样获取 EPI 数据数组中中间体素的值:
[0,0,0]就是体素坐标 3.2.2 体素坐标和空间点体素坐标几乎不告诉我们数据在扫描仪中的位置来自何处。 例如,假设我们有体素坐标 (26, 30, 16)。 如果没有更多信息,我们不知道这个体素位置是在大脑的左侧还是右侧,还是来自扫描仪的左侧或右侧。 这是因为扫描仪允许我们在几乎任何任意位置和方向收集体素数据。 比如我们对EPI图,将扫描仪稍微旋转一下,得到红色框内的部分 ?? 我们进行了解剖和 EPI 扫描,稍后我们肯定希望能够将 somes_epi.nii.gz 中的数据与someones_anatomy.nii.gz 相关联。目前我们不能轻易做到这一点,因为我们收集到的解剖图像与 EPI 图像具有不同的视野和方向。所以体素坐标暂时不能一一对应。? 我们通过跟踪体素坐标与某些参考空间的关系来解决这个问题。具体而言,仿射阵列(affine)存储图像数据中的体素坐标与参考空间中的坐标之间的关系 “参考空间”中的“空间”是什么意思? 该空间由一组有序的轴定义。 对于我们的 3D 空间世界,它是一组 3 个独立的轴。 我们可以通过选择这些轴来决定我们想要使用的空间。 我们需要选择轴的原点、方向和单位。(xyz-坐标轴,单位毫米) 3.2.3 affine matrix我们希望将体素坐标(i,j,k)转换到参考空间坐标(x,y,z),即(x,y,z)=f(i,j,k) 而基本的矩阵乘法,可以满足
这几个基本的操作相结合(矩阵乘法),就可以实现坐标轴的变换? 上面完成了坐标轴的对应,但是体素的原点(0,0,0)对应的不一定是参考空间的(0,0,0)点,假设对应的是参考空间中的(a,b,c)坐标,那么,体素中的(i,j,k)对应的是参考空间中的(x,y,z)???? 3.2.4 获得image的affine?? 参考文献? How to read NIFTI format image (. nii file) (programmer.group) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 0:34:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |