如何读取并对nii三维数据进行切片处理、转换格式保存
1.首先,我们从https://ww2.mathworks.cn/matlabcentral/fileexchange/8797-tools-for-nifti-and-analyze-image?s_tid=mwa_osa_a 下载Tools for NIfTI and ANALYZE image,并放到toolbox路径中;
2.添加导入路径:addpath('/MATLAB/R2013a/toolbox/NIfTI_20140122');
3. 导入图像:
close all;
clear all;
clc;
nii = load_nii( 'CT_wl_0.nii' ); % 装载.nii数据
img = nii.img; % 因为这个文件有img和head二个部分,其中img部分是图像数据
4:切片分层显示图像:
[n1,n2,n3] = size(img); %读取文件的各个维度大小
imshow(img(:,:,10),[]); %预览第10个维度的图片
for i = 1:n3
figure(i) %建立一个图形窗口,如果没有这一句则所有切片只会依次显示于一个窗口
ti = imshow(img(:,:,i),[]);
end
5:保存图像为tif格式或其它格式:
imwrite(img(:,:,1),'result.tif');
>> imwrite(img(:,:,2),'result02.tif');
>> imwrite(img(:,:,3),'result03.tif');
>> imwrite(img(:,:,4),'result04.tif');
>> imwrite(img(:,:,5),'result05.tif');
>> imwrite(img(:,:,6),'result06.tif');
>> imwrite(img(:,:,7),'result07.tif');
>> imwrite(img(:,:,8),'result08.tif');
>> imwrite(img(:,:,9),'result09.tif');
>> imwrite(img(:,:,10),'result10.tif');
>> imwrite(img(:,:,11),'result11.tif');
>> imwrite(img(:,:,12),'result12.tif');
>> imwrite(img(:,:,13),'result13.tif');
>> imwrite(img(:,:,14),'result14.tif');
>> imwrite(img(:,:,15),'result15.tif');
>> imwrite(img(:,:,16),'result16.tif');
>> imwrite(img(:,:,17),'result17.tif');
>> imwrite(img(:,:,18),'result18.tif');
注:1.只有imwrite途经保存的图像没有白边
2.保存到当前文件夹下:imwrite(I,'stripes2.png');
保存到当前文件夹下的一个子文件result下:imwrite(I,'./result/stripes2.png');
保存到当前文件夹上一层的一个文件夹result下:imwrite(I,'../result/stripes2.png');
其中I为要保存图像,stripes2.png为文件名,保存为png格式,要提前建立一个文件夹result才可以。
3.保存多个图像时,顺序命名图像文件名称需用到 num2str 或 sprintf命令。
针对第三点进行补充,可以自动命名并保存所有切片的程序如下:
nii = load_nii( 'MR_std.nii' ); % 装载.nii数据
img = nii.img; % 因为这个文件有img和head二个部分,其中img部分是图像数据
save image.mat img % 将数据变成mat格式
load 'image.mat' % 加载数据
[n1, n2, n3] = size(img); % 获取.nii文件的三个维度,一般1、2维是图像维度,第三维是切片
for i = 1:n3 % 开始切片数据轮寻
figure(i) % 开始显示图片
ti = imshow(img(:,:,i),[]); % 显示每一张切片图像
title(['result',num2str(i)])
set(gcf,'color',[1 1 1])
F(i)=getframe(gcf);
imwrite(F(i).cdata,['result',num2str(i),'.tif'])
end
如何读取并对nii三维数据进行切片处理、转换格式保存相关推荐
- python3读取excel数据-Python3读取和写入excel表格数据的示例代码
python操作excel主要用到 xlrd 和 xlwt 这两个库,xlrd读取excel表格数据, 支持 xlsx和xls格式的excel表格 :xlwt写入excel表格数据: 一.python ...
- Python3读取和写入excel表格数据
目录 一.python读取excel表格数据 1.读取excel表格数据常用操作 2.xlrd模块的主要操作 3.读取单元格内容为日期时间的方式 4. 读取合并单元格的数据 二.python写入exc ...
- matlab读取电子海图,基于dem数据叠加的航海雷达回波模拟方法
基于dem数据叠加的航海雷达回波模拟方法 [技术领域] [0001] 本发明涉及航海雷达的回波模拟系统,具体是一种基于DEM(Digital Elevation Model,数字高程模型)数据叠加的航 ...
- python3 写入excel表格数据_Python3读取和写入excel表格数据
目录 python操作excel主要用到 xlrd和xlwt 这两个库,xlrd读取excel表格数据, 支持 xlsx和xls格式的excel表格 :xlwt写入excel表格数据: 一.pytho ...
- matlab读取grib三维数据,matlab读取grib2文件
用matlab读取nc文件是简单的.但气象局的很多数据存储文件是grib2格式的.该如何读取呢?看了网上的众多方法,nctoolbox,read_grib都没有成功.最后投机取巧,用了36计中的瞒天过 ...
- Matlab中矩阵编号方式以及一维二维三维数据间的相互转换
Matlab中矩阵编号方式以及一维二维三维数据间的相互转换 文章目录 Matlab中矩阵编号方式以及一维二维三维数据间的相互转换 一.问题的提出 二.一维数据转为二维和三维 三.三维数据转为一维和二维 ...
- 利用matlab将三维数据画成三维立体图
1.序言 三维立体图看起来美观,在很多研究中常使用三维立体图进行展示. 2.使用的数据和方法 通过查询网上的资料,自己改写程序,整理写成了matlab读取excel数据,画三维图. (1)参考程序 c ...
- python画车辆轨迹图_如何利用 Python 绘制酷炫的 车辆轨迹 — 速度时空图?三维数据用二维图像呈现...
说明:本文系交通攻城狮原创文章,如需转载请私信联系,侵权必究. 2020,第 30 期,编程笔记 建议直接阅读精编版:如何利用 Python 绘制酷炫的 车辆轨迹 - 速度时空图?三维数据用二维图像呈 ...
- 三维数据入到arcgis平台的解决方案
目录 1.传统建模数据 ①obj.dae.3ds等模型纹理颜色或者贴图不显示 ②加载wrl数据贴图丢失 ③将obj模型导入到arcgispro出现异常情况 ④zoom to layer选项失效导致三维 ...
最新文章
- ASP.NET页面错误处理
- C#的修饰符作用的范围
- 【CyberSecurityLearning 附】DNS复习演示所有实验
- 排序及其分类(一级)
- C++简易测试代码框架
- mysql高可用方案MHA介绍
- [转帖]Cookies和Session的区别和理解
- jquery包裹节点
- jQuery实现锚点滑动定位
- ac自动机 匹配最长前缀_【HDU】5069 Harry And Biological Teacher AC自动机fail指针建树dfs...
- vb.net 实现编辑某列并回车后不换行,查询数据进行相关处理
- VC++内存泄漏检测工具VLD使用方法
- 在ubuntu16.04上安装suitecrm
- 在Android手机上对https请求进行抓包
- php获取alexa世界排名值的函数
- 百度C++研发工程师面试题(最新整理)
- 【十三】python面向对象之类和对象
- 电影票业务-字节青训营
- javaSE探赜索隐四<数组>
- 计算机键盘的tab键是哪个,电脑键盘中的Tab键都有哪些妙用
热门文章
- 一个简单的汉字搜索匹配示例(支持拼音、首字母简写)
- 【花雕体验】04 测试行空板的常用功能
- picacg本地缓存目录_picacg隐藏模式在哪?picacg怎么进隐藏?
- 计算机Word2010在线做题,计算机WORD题库及答案.doc
- android-studio.下载地址
- photoshop渐变编辑_在线图片编辑器(如Photoshop)
- poi设置行距固定磅数
- word单元格斜网格_如何在Word中的所有表上显示和隐藏单元格网格线
- PMP考试必用公式大全
- 企业战略(Enterprise Strategy)