医疗影像处理
有关医疗影像基本知识以及相关工具的使用
chestnut--
计算机视觉小小菜鸟一枚
邮箱:1678438052@qq.com
展开
-
【SimpleITK】使用区域生长法/种子填充法/形态学分割肺-CT img
import SimpleITK as sitkimport matplotlib.pyplot as plt 导入数据:img_path = “...”img = sitk.ReadImage(img_path)img.GetSize()(512, 512, 121)img_arr = sitk.GetArrayFromImage(img)plt.imshow(img_arr...原创 2020-02-05 10:20:02 · 6809 阅读 · 4 评论 -
【SimpleITK】Resampling重采样
API :sitk.Resamplesitk.Euler2DTransform (sitk.Euler3DTransform)Resampling 顾名思义,对一幅图像进行重采样操作。而图像本身就是对原始连续信号的采样。一搬来说使用 SimpleITK重采样包含以下四个部分:我们需要重新采样的图像image,在坐标系mmm下。???why?重采样网格(Resampling gr...原创 2020-11-01 21:31:47 · 1450 阅读 · 0 评论 -
【SimpleITK】分割label覆盖到原图上显示
医疗影像跟自然场景下图像的区别之一就是“像素”范围不一样,在将label覆盖到原图上时也略微不同,但是必须要将图像归一化到[0,255][0,255][0,255]。我们使用SimpleITK的相关API来解决这个问题。数据为BraTS2019的数据,label 有4个,[0,1,2,4]。from __future__ import print_function%matplotlib i...原创 2020-01-17 11:37:05 · 4091 阅读 · 21 评论 -
【SimpleITK】医疗影像分割结果评价指标计算
文章目录Overlap MeasuresSurface Distance Measuressome APIOverlap Measuresjaccarddicevolume_similarityfalse_negativefalse_positive其中:Volume measures:volumeSimilarity2∗(v1−v2)v1+v2 volumeSimilari...原创 2020-01-16 17:20:48 · 3719 阅读 · 1 评论 -
【SimpleITK】分割结果融合策略
前言有时我们会有多个专家标注的结果或者是多个模型得到的结果,对所有的结果做一个融合,目前有两种主流做法:投票法 (majority vote)STAPLE (Simultaneous Truth and Performance Level Estimation)对多个专家的标注结果进行融合之后,我们得到的标注就可以作为ground truth参与到模型的分割训练;当然,对多模型的结果进...原创 2020-01-16 11:44:29 · 2942 阅读 · 1 评论 -
【医疗影像处理】对分割的mask做处理,保留最大联通区域
APIskimage.measurehttps://scikit-image.org/docs/dev/api/skimage.measure.htmlout_arr 为得到的结果mask矩阵。from skimage import measurelabels = measure.label(out_arr, neighbors=8)print(np.unique(labels...原创 2020-01-07 15:04:34 · 1774 阅读 · 0 评论 -
【医疗影像处理】使用前景像素的均值和方差(mean,std)对图像进行归一化(背景像素为0)【numpy-code】
一个人脑的MRI影像(3D)- volume,plot其中的一张slice:plot前景区域(背景像素值为0):plt.imshow(np.asarray(volume[100,:,:] > 0, np.float32))使用前景区域像素值的均值方差进行归一化volume = zepixels = volume[volume > 0]mean = pixels.me...原创 2019-08-20 17:12:31 · 4792 阅读 · 9 评论 -
【影像学基本知识】Slice gap and slice thickness and cross-talk
http://mrishark.com/slice-thickness.htmlhttp://www.mrishark.com/gap.html原创 2019-06-14 16:56:24 · 1253 阅读 · 0 评论 -
【医疗影像处理】去除医疗影像中背景的影响2D/3D【numpy-code】
在医疗影像中特别是CT影像,包含大量的背景,在进行器官分割时,首先去除背景对分割的效果有很好的提升。本博客使用python处理医疗影像并去除背景的影像。使用的样例数据来自Multimodal Brain Tumor Segmentation Challenge 2018读取数据的基本信息import nibabel as nibimport numpy as npfrom nilea...原创 2019-03-07 15:44:25 · 2530 阅读 · 2 评论 -
【医疗影像处理】antspy数据读取与保存
Antspy三个API:image_readfrom_numpyimage_writeimage_readimport antsfile = '../T1.nii'data = ants.image_read(file)ants.plot(data)from_numpyget numpyarr = data.numpy()arr.shape# (240, 240,...原创 2019-12-31 18:22:42 · 1625 阅读 · 0 评论 -
plt.imshow显示CT/MRI图像
先看一下plt.imshowhelp(plt.imshow)下面只是显示此博客关注的关键部分,完整的可以自己运行命令查看。imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, shape=None...原创 2019-05-31 10:52:21 · 2617 阅读 · 2 评论 -
使用N4BiasFieldCorrection处理MRI图像
前言诸如扫描仪中的患者位置,扫描仪本身以及许多未知问题等因素可导致MR图像上的亮度差异。 换句话说,强度值(从黑色到白色)可以在同一组织内变化。 这被称为偏置场。 这是一种低频平滑的不良信号,会破坏MR图像。 偏置场导致MRI机器的磁场中的不均匀性。 如果未校正偏置字段将导致所有成像处理算法(例如,分段(例如,Freesurfer)和分类)输出不正确的结果。 在进行分割或分类之前,需要预处理步骤...翻译 2019-03-04 10:33:48 · 16317 阅读 · 12 评论 -
【SimpleITK】坐标次序问题
读取一个nii.gz文件:import SimpleITK as sitkdata_path = 'example.nii.gz'data_1 = sitk.ReadImage(data_path)查看对象的大小size:data_1.GetSize()(320, 260, 72)三个值分别如何对应呢?查看对象的Depth,Height, Width:data_1.G...原创 2019-07-01 14:46:35 · 1564 阅读 · 0 评论 -
【SimpleITK】胸部CT数据3D space归一化,以及3D plot
样例数据ori_file = '1.nii.gz'使用sampleITK读取数据,注意SimpleITK 加载数据是channel_first。import SimpleITK as sitkds = sitk.ReadImage(file)img_array = sitk.GetArrayFromImage(ds)np.shape(img_array)(229, 512...原创 2019-06-03 14:17:16 · 7266 阅读 · 20 评论 -
【医疗影像处理】DICOM Rescale Intercept / Rescale Slope
What is Rescale Intercept / Rescale Slope?DICOM tags :Rescale intercept (0028|1052)Rescale slope (0028|1053)缩放斜率和截距由硬件制造商决定。它指定从存储在磁盘表示中的像素到存储在内存表示中的像素的线性转换。磁盘存储的值定义为SV。而转化到内存中的像素值uints就需要两个dic...原创 2020-01-02 14:21:38 · 7602 阅读 · 7 评论 -
【医疗影像处理】dcm2niix python3 使用
dcm2niix将 dicom序列转为nifti。dcm2nii 与dcm2niix网址NITRC。dcm2nii是一个流行的工具,用于将扫描仪制造商使用的复杂格式(DICOM、PAR/REC)转换为许多科学工具使用的简单NIfTI格式。dcm2nii适用于所有的模式(CT、MRI、PET、SPECT)和序列类型。注意:dcm2nii通常包含在MRIcron下载中。MRIcron有wi...原创 2019-12-05 10:05:51 · 5398 阅读 · 5 评论 -
【医疗影像处理】使用GMM分割3D T1得到wm/gm/csf/background
对一个T1样本进行分割,得到:wm 白质gm 灰质csf 脑脊液背景这里我们使用无监督的方法——GMM。图像只是展示了其中的一层:从图上可以看到,白质的信号明显高于灰质的信号,灰质的信号高于脑脊液(和背景)的信号。T1直方图绘制T1的直方图不可以包含背景部分,背景为0,占比极高;此处的直方图分布使用的非零像素(前景像素)。在T1上明显的可以看到有4个峰,其实可以使用4...原创 2019-11-28 17:20:15 · 1908 阅读 · 2 评论 -
【影像学基本知识】T1, T2 and PD weighted imaging
原文地址:https://www.radiologycafe.com/radiology-trainees/frcr-physics-notes/t1-t2-and-pd-weighted-imaging与使用radiation成像不同,在对比度成像中,对比度取决于所成像结构的不同衰减,而MR图像中的对比度取决于所成像区域中的磁性和氢核数。通过以不同的权重运行不同的序列,可以选择要成像区域中...翻译 2019-11-17 21:13:54 · 10764 阅读 · 0 评论 -
【医疗影像处理】脑部MRI影像denoise方法总结[antspy]
当不考虑时间成本的时候,选择 协同过滤方法BM3D要比NLM和ilateral filtering要好,这部分的讨论可以参考1。其中这三个算法都可以尝试:BM3D2 3Non-Local Means: 4Bilateral Filter: 5antspy 使用NLM对脑MRI实现去噪import antsimport numpy as npfile_path = 'x.nii....原创 2019-10-25 22:11:09 · 2534 阅读 · 4 评论 -
【医疗影像处理】Erosion and Dilation of medical images masks using scipy.ndimage in python
对2D或者3D的医疗影像mask进行膨胀和腐蚀处理。参考使用库scipy.ndimage要完成的事对3D的脑mask进行膨胀和腐蚀操作。数据初探对脑影像——已去脑壳并配准到标准模版上,卡阈值0得到脑mask:index 116index 80对数据进行膨胀操作将脑mask中的空洞进行填补。brain_mask2 = ndimage.binary_closing(brai...原创 2019-10-25 10:23:40 · 1062 阅读 · 4 评论 -
【影像学基本知识】有关CT及MRI阅片常识
Miele-LXIV文章目录Miele-LXIV有关CT及MRI阅片常识1. CT及MR2. 矢状面,冠状面,横断面3. 图像中的原点,大小,间距以及方向Miele-LXIV的使用演示有关CT及MRI阅片常识1. CT及MR(1)CT利用各种组织对X线的不同吸收系数,产生图像上的密度差异,,测量单位HU(Hounsfield units),CT可以进行横截面和多个平面的成像。HU值的范围较...原创 2019-06-12 13:05:31 · 7786 阅读 · 2 评论 -
【影像学基本知识】MR----T1,T2
T1,T2和质子密度是MR的基本参数,用来确定组织之间的对比。MR序列中,强调组织T1弛豫差别的称为T1加权;强调T2弛豫差别的称为T2加权。什么是弛豫时间?T1加权序列中,T1弛豫时间短的物质,例如 脂肪、黑色素、蛋白质呈现明亮的高信号,而脑脊液(CSF)呈现为低信号。低信号与高信号的形态表现区别是什么?T2加权序列中,脑脊液(CSF)弛豫时间长,表现为明亮的高信号。不同组...原创 2019-06-26 16:27:54 · 21317 阅读 · 0 评论