转载自Binlin Wu (2020). Visualize 3D volumetric image data such as MRI images in Matlab (https://www.mathworks.com/matlabcentral/fileexchange/32065-visualize-3d-volumetric-image-data-such-as-mri-images-in-matlab), MATLAB Central File Exchange. Retrieved November 14, 2020.


1.在mriplot.m中,使用MATLAB自带的医学体数据 mri.mat。如果要显示其他数据,可以将数据保存到矩阵D1中,或修改.m文件。
2.单击三个MRI图像中的任何一个,然后按“ ENTER”以在新的[x,y,z]位置更改切片。

3.按“ ESC”,然后按“ ENTER”退出。


具体代码如下:

%% mriplot.mload mri.mat;
D1=double(squeeze(D));
DIM = size(D1);
[X,Y,Z]=meshgrid(1:DIM(2),1:DIM(1),1:DIM(3));
h1=subplot(2,2,1);imagesc(D1(:,:,round(DIM(3)/2)),[min(D1(:)) max(D1(:))]);colormap(gray);title('axial');colorbar;
xlabel('x');ylabel('y')
h2=subplot(2,2,2);imagesc(squeeze(D1(:,round(DIM(2)/2),:)),[min(D(:)) max(D(:))]);colormap(gray);title('sagittal');colorbar;
xlabel('z');ylabel('y')
h3=subplot(2,2,3);imagesc(squeeze(D1(round(DIM(1)/2),:,:)),[min(D(:)) max(D(:))]);colormap(gray);title('coronal');colorbar;
xlabel('z');ylabel('x')
subplot(2,2,4);slice(X,Y,Z,D1,64,64,14);colormap(gray);shading flat;title('3D Slices')
xlabel('x');ylabel('y');zlabel('z');x=round(DIM(2)/2);y=round(DIM(1)/2);z=round(DIM(3)/2);
button = 0;while(1)try[A,B,button]=ginputcatchreturnendif length(A)==0A=14;B=64;button=0;endA=A(end);B=B(end);button=button(end);A=ceil(A-0.5);B=ceil(B-0.5);if button==27break;endif gca==h1x=A;y=B;if x<=0 || x>DIM(2) || y<=0 || y>DIM(1)continueendaxes(h2);imagesc(squeeze(D1(:,x,:)),[min(D(:)) max(D1(:))]);colormap(gray);title('sagittal');colorbar;xlabel('z');ylabel('y')axes(h3);imagesc(squeeze(D1(y,:,:)),[min(D(:)) max(D1(:))]);colormap(gray);title('coronal');colorbar;xlabel('z');ylabel('x')subplot(2,2,4);slice(X,Y,Z,D1,x,y,z);colormap(gray);shading flat;title('3D Slices')xlabel('x');ylabel('y');zlabel('z');elseif gca==h2z=A;y=B;if z<=0 || z>DIM(3) || y<=0 || y>DIM(1)continueend        axes(h1);imagesc(D1(:,:,z),[min(D1(:)) max(D1(:))]);colormap(gray);title('axial');colorbar;xlabel('x');ylabel('y')axes(h3);imagesc(squeeze(D1(y,:,:)),[min(D1(:)) max(D1(:))]);colormap(gray);title('coronal');colorbar;xlabel('z');ylabel('x')subplot(2,2,4);slice(X,Y,Z,D1,x,y,z);colormap(gray);shading flat;title('3D Slices')xlabel('x');ylabel('y');zlabel('z');        elseif gca==h3z=A;x=B;if x<=0 || x>DIM(2) || z<=0 || z>DIM(3)continueend        axes(h1);imagesc(D1(:,:,z),[min(D1(:)) max(D1(:))]);colormap(gray);title('axial');colorbar;xlabel('x');ylabel('y')axes(h2);imagesc(squeeze(D1(:,x,:)),[min(D1(:)) max(D1(:))]);colormap(gray);title('sagittal');colorbar;xlabel('z');ylabel('y')subplot(2,2,4);slice(X,Y,Z,D1,x,y,z);colormap(gray);shading flat;title('3D Slices')xlabel('x');ylabel('y');zlabel('z');        end
end

转载自
Binlin Wu (2020). Visualize 3D volumetric image data such as MRI images in Matlab (https://www.mathworks.com/matlabcentral/fileexchange/32065-visualize-3d-volumetric-image-data-such-as-mri-images-in-matlab), MATLAB Central File Exchange. Retrieved November 14, 2020.

在Matlab中可视化3D体积图像数据,例如MRI图像相关推荐

  1. R语言ggplot2可视化:使用长表数据(窄表数据)( Long Data Format)可视化多个时间序列数据、在同一个可视化图像中可视化多个时间序列数据(Multiple Time Series)

    R语言ggplot2可视化:使用长表数据(窄表数据)( Long Data Format)可视化多个时间序列数据.在同一个可视化图像中可视化多个时间序列数据(Multiple Time Series) ...

  2. Python使用matplotlib可视化多个时间序列数据、在同一个可视化图像中可视化多个时间序列数据(Multiple Time Series)

    Python使用matplotlib可视化多个时间序列数据.在同一个可视化图像中可视化多个时间序列数据(Multiple Time Series) 目录

  3. matlab怎么求imf图,MATLAB中提取EMD分解后的每个IMF图像,并导出每个IMF数据

    题目: MATLAB中提取EMD分解后的每个IMF图像,并导出每个IMF数据 EMD分解程序我就不给了,网上都是一样的. 例: M = length(imf); N = length(x); c = ...

  4. Matlab:可视化标量三维体数据的方法

    Matlab:可视化标量三维体数据的方法 什么是标量三维体数据? 显示 MRI 数据的方法 更改数据格式 显示 MRI 数据的图像 显示二维等高线切片 显示三维等高线切片 将等值面应用于 MRI 数据 ...

  5. matlab中normfit,MATLAB中如何得到一组统计数据的分布特征

    MATLAB中如何得到一组统计数据的分布特征 我想通过MATLAB知道一组统计数据的分布特征,如属于哪种分布,均值方差等,请问如何实现?谢谢! function f=p_judge(A,alpha) ...

  6. MATLAB中文件的读写和数据的导入导出

    http://blog.163.com/tawney_daylily/blog/static/13614643620111117853933/ 在编写一个程序时,经常需要从外部读入数据,或者将程序运行 ...

  7. 窗宽窗位改变图像_CT、MRI图像的影像诊断4大原则、5个步骤、3大阅片方法

    来源:互联网 第一节 影像诊断原则与步骤 医学影像诊断包括X线.CT.MRI.超声等,是重要的临床诊断方法之一.为了达到正确诊断,必须遵循一定的诊断原则和步骤,才能全面.客观地作出结论. 一.影像诊断 ...

  8. matlab中的libsvm怎么录入数据啊,LibSVM在MATLAB中使用时的几个问题

    在科研中需要用到支持向量机(Support Vector Machines, SVM)来进行分类,而目前比较成熟的用于实现SVM的软件包则首推LibSVM.LibSVM目前的版本已经能直接在MATLA ...

  9. matlab中给三维点云数据增加随机噪声_诺斯顿测量|三维激光扫描技术让化工厂改造变得更轻松和高效...

    突发!9月1日下午,淄博一化工厂内发生火情,浓烟滚滚.据目击者称,火情发生在当天17:20左右并未造成人员伤亡,目前已被扑灭,起火原因尚在调查. 化工厂火灾.爆炸事故频繁发生每一次都让人唏嘘不已.据统 ...

最新文章

  1. 小猪学设计模式——工厂模式之抽象工厂
  2. (DFS)求出n个数中选择m个数的所有可能
  3. java内部类的作用
  4. 解决:pycharm中动画函数animation.FuncAnimation不起作用
  5. 返回值与返回引用的问题
  6. 日志框架NLog之将日志发送到邮件
  7. A轮股权学院:激活股权的力量,弄懂这些就够了
  8. 小米蓝牙左右互联_小米真无线蓝牙耳机Air2评测:支持弹窗动画,半入耳设计全面升级...
  9. tcp socket的发送与接收缓冲区
  10. python——pandas库之Series数据结构基础
  11. Uber开源基于web的自主可视化系统,可共享数据
  12. pytorch梯度的自动求取
  13. openstack nova ×××
  14. 数模比赛经验分享(美赛分享)
  15. xp开机黑屏故障分析
  16. shuipfcms二次开发之图片上传
  17. html图形渐变颜色一半一半,CSS3教程:background-image之放射性渐变(radial-gradient)详解...
  18. DW1000开发笔记(一)DW1000芯片概览
  19. 《自然语言处理实战入门》---- 神经网络与推荐系统初步简介
  20. Eclipse崩溃后无法启动的问题解决

热门文章

  1. gsoap 学习 1-自己定义接口生成头文件
  2. Lync Server 2010移动功能部署PART B:外部篇
  3. 高性能云计算展望(中)
  4. nessus安全工具主要用途_发电技术 | 发电厂DCS 网络安全评估与防护
  5. 树状数组求逆序对_初识树状数组
  6. c++ 判断数学表达式有效性_C运算符和表达式、if判断、switch与逻辑运算、循环语句...
  7. 贵州二本好的计算机专业,官方支持贵州大学创建双一流大学,贵州唯一的211,二本也有机会...
  8. oracle数据库buffer,Oracle数据库导入Buffer不足出现主机蜂鸣
  9. python图像分割算法_Opencv(二)—图像分割之分水岭算法!
  10. ObjectIOStream 对象流 ByteArrayIOStream 数组流 内存流 ZipOutputStream 压缩流