Linux上的MATLAB如何读取超大的医学影像数据

Linux上的MATLAB如何读取超大的医学影像数据,第1张

方法如下:

读取NIFTI,使用自带的niftiread函数

filename = 'test.nii.gz'

img = niftiread(filename)

这样读取出来的只有一个数组,也就说只是单纯读了一个图像。另一种方法是使用matlab官方给出的一个工具包,不过我没有试过。

如果想读取其他信息:

info = niftiinfo('test.nii.gz')

结果是一个结构体:

需要得到拿个信息只需要按照查看结构体的方法就可以了。

读取dicom只读一张图片很简单,

img_path = 'test'%有没有扩展名dcm其实都可以

img = dicomread(img_path)

同样这样读出来的也只有一个数组,表示的是图像本身,如果想查看其他信息,可以使用dicominfo函数

img_info = dicominfo(img_path)

dicominfo返回的是一个结构体,其中包含了非常多的信息,其中一部分:

更多的时候需要读一个文件夹内的所有dicom图片,比如动态成像中不同的时间帧,或者三维成像中不同的切片,转化成.nii格式或者mat文件用作后续处理。

读取所有dicom图片的方法和读取普通图片其实是差不多的,就是先把所有文件名存成一个list,然后一个一个读,存到一个多维的数组中。

你的Linux *** 作系统正在运行图形界面吗?

1. 我正在运行着图形界面。我希望从命令行启动图形界面的默认图片查看器。

那么命令是:

xdg-open filename.png

2. 我正在运行着图形界面,但是我希望把图片显示在终端(Terminal)里面。

运行命令:

img2txt filename.png

当然这需要预先安装好img2txt。如果你是Debian/Ubuntu用户,安装命令是:

sudo apt-get install caca-utils

Red Hat/CentOS/Fedora用户可自行用对应的yum命令安装。

3.我没运行图形界面,我就是想在纯命令行环境(Linux console)查看图片

运行命令:

fbi filename.png

当然这需要预先安装好fbi。如果你是Debian/Ubuntu用户,安装命令是:

sudo apt-get install fbi

Red Hat/CentOS/Fedora用户可自行用对应的yum命令安装

使用read和write需要在用户进程的缓冲和内核的缓冲区之间进行一次数据的拷贝过程是非常的浪费CPU的。而使用mmap可以将内核的缓冲区直接的映射在用户的进程内存中,减少了一次无价值的数据复制过程。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7240973.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-03
下一篇2023-04-03

发表评论

登录后才能评论

评论列表(0条)

    保存