如何将nii格式文件转换为2D图像

2023-11-25

我有一个扩展名为 .nii 的文件。我不知道如何将 .nii 文件转换为 2D 格式。我的问题是在将 .nii 文件转换为 2D 时,我是否会丢失有关该文件的一些信息。哪种格式好? dicom 或 png 或 bmp。

nii = load_nii('im.nii');
size(nii.img);

returns

ans =

    39   305   305  

它是 uint8 格式

我可以使用挤压或调整大小吗?如何对该图像应用调整大小;是否丢失信息?


是的,您可以像处理任何数组一样操作图像/序列。

这是一个简单的例子,其中包含来自 NIH 的数据here.

该数据集为 4D 形式,名为“filtered_func_data.nii”。

让我们加载数据集并访问img结果结构的字段:

S = load_nii('filtered_func_data.nii')

这里,S是一个具有以下字段的结构体:

S = 

           hdr: [1x1 struct]
      filetype: 2
    fileprefix: 'filtered_func_data'
       machine: 'ieee-be'
           img: [4-D int16]
      original: [1x1 struct]

我们可以使用该字段访问图像数据img(你已经知道了):

A = S.img

如果我们检查尺寸,我们会得到:

size(A)

ans =

    64    64    21   180

因此,数据集由 64x64 图像组成,深度/切片数量为 21,帧数量为 180。

此时我们可以操纵A因为我们喜欢重塑形状、调整大小或任何东西。

下面是一个简单的代码(gif 动画),用于循环遍历 4D 数组中第一个时间点的每个切片:

NumSlices = size(A,3)

figure(1)
filename = 'MRI_GIF.gif';

for k = 1:NumSlices

    imshow(A(:,:,k,1),[])
    drawnow

    frame = getframe(1);
    im = frame2im(frame);
    [imind,cm] = rgb2ind(im,256);
    if k == 1;
        imwrite(imind,cm,filename,'gif', 'Loopcount',inf);
    else
        imwrite(imind,cm,filename,'gif','WriteMode','append');
    end

    pause(.1)
end

Output:

这对我来说看起来很不错。

所以在你的情况下,你得到的大小是[39 305 305]您可以应用与我相同的操作来处理您的 3D 数据集。

EDIT对于你的数据来说是一样的:

S = load_nii('Subject01.nii');

A = S.img;

NumSlices = size(A,3);

然后,如果您想要 2D 图像,则需要在 3D 数组中选择一个切片。

例如,第一个切片的访问方式如下:

A(:,:,1)

其余的依此类推。

要将图像保存为 png,请使用imwrite.

希望有帮助!

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

如何将nii格式文件转换为2D图像 的相关文章

  • 如何在 Matlab 中使用谷歌翻译?

    我正在编写一个程序 使用 Matlab 列出电影字幕文件中的所有唯一单词 现在我有一个独特的单词列表 我想将其翻译成我的语言并在观看电影之前了解其含义 有谁知道如何在 Matlab 中使用 Google Translate 以便完成我的脚本
  • 有没有办法检测图像是否模糊? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道是否有一种方法可以通过分析图像数据来确定图像是否模糊 估计图像清晰度的另一种非常简单的方法是使用拉普拉斯 或 LoG 滤波器并
  • 将函数应用于 3D numpy 数组

    我有一个来自 Image PIL Pillow 对象的 numpy 3D 数组 178 214 235 180 215 236 180 215 235 146 173 194 145 172 193 146 173 194 126 171
  • Simulink 仿真引擎如何工作?

    我想了解 Simulink 仿真引擎的工作原理 它是否使用离散事件模拟机制 那么如何处理连续时间 它是否依赖于基于静态循环的代码生成 或者 在第一个周期之前 它会计算出块的执行顺序 从不需要任何其他块输入的块开始 每个周期 它都会根据输入和
  • Matlab:保存后翻转图例顺序和图例重叠图

    我正在尝试根据以下内容反转我的图例条目顺序matlab条形图中图例颜色的逆序 https stackoverflow com questions 31178005 reverse ordering of legend colors in m
  • Matlab 字段名索引[重复]

    这个问题在这里已经有答案了 所以我有一个包含多个表的元胞数组 我试图访问表的第一个列名称 c table1 table2 table3 以下两行都给了我错误 fieldnames c 1 1 fieldnames c 1 1 Error i
  • OpenCV:使用 StereoCamera 系统对颜色标记进行 3D 姿态估计

    我有一个立体摄像系统并使用两者正确校准它 cv calibrateCamera and cv stereoCalibrate My reprojection error似乎没问题 凸轮0 0 401427 凸轮1 0 388200 立体声
  • 什么是 ANN 中的纪元以及它如何转换为 MATLAB 中的代码?

    我试图理解 并可视化 训练人工神经网络的时代到底是什么 我们有一个包含约 7000 个产品的训练集 其中有 10 个特征 输入 这些产品必须根据这 10 个输入分为 7 个类别 我们的 ANN 有 10 个输入 这些输入进入由 10 个神经
  • 如何使用 python 测量骨架长度的想法

    After applying skeletonization http scikit image org docs dev auto examples plot skeleton html on an image 我想使用 python 测
  • MATLAB 教程中的 SIFT 实现

    我正在寻找 MATLAB 中的一些基本 SIFT 实现 我需要从第一原则来写它 另外 我正在寻找一些可以解释程序中发生的事情的内容 Vedali 的代码和 David Lowe 的代码超出了我的理解范围 如果您是 Matlab 用户 您一定
  • matlab中类库的全局变量

    我有一些matlab声明的类 我如何声明所有类中都可见的常量 例如 这些常量可以是在所有类的方法中使用的物理常量 首先想到的是使用全局变量 还有更好的办法吗 最好在单独的文件中声明这些常量 包含常量的类是执行此操作的一种很好的干净方法 请参
  • 检测植物图片中的所有分支

    我想知道有什么可以检测下图中的所有绿色树枝 目前我开始应用 Frangi 过滤器 options struct FrangiScaleRange 5 5 FrangiScaleRatio 1 FrangiBetaOne 1 FrangiBe
  • 自动跟踪算法

    我正在尝试写一个simple跟踪例程来跟踪电影中的某些点 本质上我有一系列 100 帧长的电影 在黑暗背景上显示一些亮点 我每帧有大约 100 150 个点 它们在电影的过程中移动 我想跟踪它们 所以我正在寻找一些有效的 但可能不会过度实施
  • 如何使用 MATLAB 的 substruct 函数创建表示使用“end”的引用的结构?

    我想使用substruct http www mathworks com help matlab ref substruct html函数创建一个结构体以供使用subsref 目的是使用索引字符串subsref而不是通常的 符号 因为我正在
  • 为什么我们应该使用灰度进行图像处理

    我认为这可能是一个愚蠢的问题 但在阅读了大量内容并搜索了很多有关图像处理的内容之后 我看到的有关图像处理的每个示例都使用灰度来工作 我知道灰度图像只使用一个颜色通道 通常只需要 8 位来表示 等等 但是 当我们有彩色图像时为什么要使用灰度呢
  • 如何更改Plotyy第二轴的颜色和字体大小?

    我使用 MATLAB 的plotyy 函数绘制了两条曲线 AX H1 H2 plotyy voltage span amplitude voltage span Ca SR The problem is that I cannot chan
  • MATLAB - 冲浪图数据结构

    我用两种不同的方法进行了计算 对于这些计算 我改变了 2 个参数 x 和 y 最后 我计算了每种变体的两种方法之间的 误差 现在我想根据结果创建 3D 曲面图 x gt on x axis y gt on y axis Error gt o
  • OpenCV 中的 Gabor 内核参数

    我必须在我的应用程序中使用 Gabor 过滤器 但我不知道这个 OpenCV 方法参数值 我想对虹膜进行编码 启动 Gabor 过滤器并获取特征 我想对 12 组 Gabor 参数值执行此操作 然后我想计算 Hamming Dystans
  • 图像处理:什么是遮挡?

    我正在开发一个图像处理项目 我遇到了这个词闭塞在许多科学论文中 遮挡在图像处理中意味着什么 字典只是给出了一般的定义 谁能使用图像作为上下文来描述它们 遮挡意味着您想看到某些内容 但由于传感器设置的某些属性或某些事件而无法看到 它到底如何表
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL

随机推荐

  • 为 JPanel 添加鼠标监听器

    今天我遇到一个问题 我的程序制作了一个 8x8 网格 并在单击时显示坐标JButton 但我拒绝使用JButton我需要去JPanel 但是我的addMouseListener不工作 所以我不知道如何才能修复我从 4 小时开始搜索的问题 p
  • 在 PHP 中创建不带括号的函数,例如“echo”

    我想知道是否有任何在 PHP 中编写函数的好方法 这样它们就不需要在参数周围使用 Example function sayThis str echo str sayThis hi 谢谢 马特 穆勒 根本没有 echo 更像是一个运算符而不是
  • Wordpress:为用户创建新的 usermeta 字段

    如何创建带有下拉选择值的新用户元字段 我想为所有用户创建一个条件语句 并具有我想要的新自定义字段的特定值 例如 新字段为 Approved 下拉值为 是和否 条件语句将识别 已批准 字段值为 是 的所有用户 然后它会发布一个代码 我正在使用
  • 让 VS2015 验证 C# 早期语法以保持与 VS2013 兼容的方法

    我遇到的一个具体问题是 VS2015 允许您使用更新的 C 语法 例如public string MyProperty gt myProperty 当针对 NET 4 0 框架项目 然后其他人在 VS2013 中打开该项目时 会出现编译器错
  • 如何转义 R 中的反斜杠? [复制]

    这个问题在这里已经有答案了 我正在 R 中工作 并且在逃避反斜杠时遇到麻烦 我正在使用图书馆stringr install packages stringr repos http cran us r project org library
  • NaN 上的宇宙飞船运算符

    在进行太空船比较操作时 C 如何处理浮点 NaN 我们知道通常的比较总是返回 false 那么 NaN 会如何改变呢 std numeric limits
  • iOS 6 应用程序 - 如何处理 iPhone 5 屏幕尺寸? [复制]

    这个问题在这里已经有答案了 可能的重复 如何开发或迁移适用于 iPhone 5 屏幕分辨率的应用程序 我只是想知道我们应该如何应对 iPhone 5 更大的屏幕尺寸 由于它的高度像素更多 像 GCRectMake 这样使用坐标的东西 并且只
  • 杀死java中的无限循环

    我正在使用第三方库来处理大量数据集 该过程偶尔会进入无限循环 或被阻塞 不知道为什么并且无法进入代码 我想在设定的时间后杀死它并继续下一个案例 一个简单的例子是 for Object data dataList Object result
  • 使用父模型获取填充嵌套集合

    我有以下带有嵌套集合的模型 var Mdl Backbone Model extend initialize function collection this col1 new NestedCollection 我想在一个请求中发送模型和集
  • 如何触发 JavaScript 事件点击

    我的页面中有一个超链接 我正在尝试自动点击超链接以进行测试 有什么方法可以使用 JavaScript 模拟超链接的 50 次点击吗 a href target blank MSDN a 我正在寻找来自 JavaScript 的 onClic
  • QuickCheckAll 始终返回“True”

    我正在尝试使用 QuickCheck 以下另一个答案 我这样测试 LANGUAGE TemplateHaskell import Test QuickCheck import Test QuickCheck All last a gt a
  • 继承模板方法

    我有一个类似于以下内容的课程 class SomeClass public template
  • bigmemory 和朋友的文件备份示例

    我有兴趣探索 R 如何处理内存不足的数据 我找到了bigmemory包裹和朋友 bigtabulate and biganalytics 但希望有人能给我指出一个使用这些包的文件支持的示例 任何其他内存不足的提示也将不胜感激 查理 只需发送
  • 在 R 中读取巨大的 json 文件,出现问题

    我正在尝试使用 R 读取非常大的 json 文件 并且我正在将 RJSON 库与此推荐一起使用json data lt fromJSON paste readLines myfile json collapse 问题是我收到此错误消息 Er
  • 编辑替代方案

    我有一大堆查询并使用levenshtein来计算拼写错误 现在levenshtein导致mysql占用完整的CPU时间 我的查询是 UNION 语句中的全文搜索 levenshtein sql1 是我当前的查询 sql2 只是全文搜索 速度
  • 如何将 flash (.swf) 文件嵌入到 asp.net 中?

    如何将 flash swf 文件显示到 asp net 中 从 YouTube 得到这个
  • Windows 8 的 WebClient 替代方案?

    I use WebClient获取 Windows Phone 8 和 Android 的 Yahoo 数据 HttpClient 使用 WebClient 我可以做 WebClient client new WebClient clien
  • 如何更新/重命名载波上传的文件?

    我不知道如何更新 重命名在 Rails 3 2 6 中使用 Carrierwave mongoid 上传 管理的文件 我想重命名数据库和文件系统中的文件 类似这样的事情也许 def rename id new name f Uploaded
  • 如何通过 NSArrayController 获得模型更改的通知?

    我有一个NSView绑定到的子类arrangedObjects of an NSArrayController 当数组插入或删除项目时 视图会收到通知 如果数组中存储的模型的属性发生更改 如何通知它 我是否需要将我的视图作为观察者添加到添加
  • 如何将nii格式文件转换为2D图像

    我有一个扩展名为 nii 的文件 我不知道如何将 nii 文件转换为 2D 格式 我的问题是在将 nii 文件转换为 2D 时 我是否会丢失有关该文件的一些信息 哪种格式好 dicom 或 png 或 bmp nii load nii im