1.Hounsfield单位
      不同密度的组织具有不同的衰减系数,CT诊断中为了对不同组织进行区分,将不同密度的各种组织用不同的CT值表示,称为Hounsfield单位(Hu)。
      以水为0,空气为-1 000,致密骨为+1 000,这样CT将测得的信号高度精确地数字化,具有了很高的空间和密度分辨力。

      CT扫描图是包含了所有组织的,如果直接去看,看不到任何有用信息。需要做一些预处理,预处理中一个重要的概念是放射剂量,衡量单位为HU(Hounsfield Unit)。
Hounsfield Unit = pixel_value * rescale_slope + rescale_intercept
      一般情况rescale slope = 1, intercept = -1024。

上表中肺部组织的HU数值为-500,但通常是大于这个值,比如-320、-400。挑选出这些区域,然后做其他变换抽取出肺部像素点。
2.Python实例 分割路径和文件名
import os.path

常用函数有三种:分隔路径,找出文件名.找出盘符(windows系统),找出文件的扩展名.

根据你机器的实际情况修改下面参数.

spath = " D:/download/repository.7z "

case 1:

p,f = os.path.split(spath);
print ( " dir is: " + p)
print ( " file is: " + f)

case 2:

drv,left = os.path.splitdrive(spath);
print ( " driver is: " + drv)
print ( " left is: " + left)

case 3:

f,ext = os.path.splitext(spath);
print ( " f is: " + f)
print ( " ext is: " + ext)
‘’’
知识点: 这三个函数都返回二元组.
* case1 分隔目录和文件名
* case2 分隔盘符和文件名
* case3 分隔文件和扩展名
‘’’

在医学图像上经常使用的一个库-SimpleITK,很多处理都只懂个大概或者只会简单的读取,保存图像,这里对常用的一些操作进行总结:
import  SimpleITK as sitk 1、sitk.Cast(sitk.ReadImage(),sitk.sitkFloat32) 图像转换数据类型
2、sitk.ReadImage(图像路径)读取图像,如.mhd .nii .nrrd等
3、sitk.WriteImage(image,图像路径)保存图像
4、sitk.GetArrayFromImage(sitk.ReadImage
5、sitk.GetImageFromArray() 将数组转换成sitk图像
6、rescalFilt = sitk.RescaleIntensityImageFilter() 改变图像的像素值,转换为[0,255]rescalFilt.SetOutputMaximum(255)rescalFilt.SetOutputMinimum(0)itkimage = rescalFilt.Execute(sitk.ReadImage()
7、resampler = sitk.ResampleImageFilter() 图像重采样resampler.SetReferenceImage(itkimage)#需要重新采样的目标图像resampler.SetSize(newSize.tolist())resampler.SetTransform(sitk.Transform(3, sitk.sitkIdentity))resampler.SetInterpolator(sitk.sitkNearestNeighbor)itkimgResampled = resampler.Execute(itkimage)#得到重新采样后的图像
8、sitk.Threshold(sitk.ReadImage(), 0, 1.0, 255) 将图像中像素值<0和>1.0的像素值改为255,否则保持不变
9、sitk.BinaryThreshold(sitk_src, lowerThreshold=lowervalue, upperThreshold=uppervalue, insideValue=255, outsideValue=0) 图像二值化
10、image1 = sitk.ReadImage() 对sitk的image1处理完后恢复到世界坐标系image2 = sitk.GetArrayFromImage(image1)origin =  image1.GetOrigin()spacing = image1.GetSpacing()direction = image1.GetDirection()image2 = sitk.GetImageFromArray(image2)image2.SetOrigin(origin)image2.SetSpacing(spacing)image2.SetDirection(direction)
11、sitk_src_gaus = sitk.DiscreteGaussianImageFilter() 图像高斯滤波sitk_src_gaus.SetVariance(3)sitk_src_gaus.SetMaximumError(0.2)sitk_src_gaus = sitk_src_gaus.Execute(sitk.ReadImage())
12、sitk.BinaryMorphologicalOpening(sitk.ReadImage() != 0, kernelsize) 图像的形态学操作:开、闭、膨胀、腐蚀sitk.BinaryMorphologicalClosing(sitk.ReadImage() != 0, kernelsize)sitk.BinaryDilate(sitk.ReadImage() != 0, kernelsize)sitk.BinaryErode(sitk.ReadImage() != 0, kernelsize)
13、sitk_xorop = sitk.XorImageFilter() 图像的逻辑运算:异或、非sitk_mask1 = sitk_xorop.Execute(imag1, imag2) image1和image2是sitk图像的二值化结果sitk_notop = sitk.NotImageFilter()sitk_mask2 = sitk_notop.Execute(image) image是sitk图像的二值化结果
14、sitk.BinaryFillhole(sitk的二值化图像)去除二值化图像内的孔洞

dicom文件:
      dicom是一个存储患者所拍摄医学影像的某一层断面图和相关信息的文件。
mhd文件与raw文件的区别:
      Raw文件,意为“未处理的文件”,其保存的是纯像素信息。常常是一个病人的所有dicom文件中的图像提取出来放在一个raw文件里。也就是说,一个病人对应一个raw文件,其中存储的是该病人的图像信息。(可以理解为将该病人不同的dicom切片图像都叠到一起,形成了一个三维图像)。一个raw通常有几百兆,对应的mhd文件只有1kb。mhd文件需要借助python的SimpleITK包来处理。
      上面已经提到,dicom文件除了包含切片图像外,还包含其他的一些信息。那么在文件格式转换后,图像信息被raw文件提取,非图像信息则存储在mhd头文件中。简单来说,mhd头文件是存储关于一个病人的所有dicom文件中的非图像信息。
      由上述关系可以知道:raw文件与mhd文件是一一对应的,且它们的数量小于等于(实际中一定是小于)dicom文件数量

因为DICOM图像通常是一个序列,普通的dcm格式的图像序列可以直接使用DICOM图像查看软件打开进行查看;但mhd格式的3D图像却无法方便地查看。

  File "D:/RStudio/data/TumorType-WGS-master/CT_MHD/Mhd_Visualization.py", line 12, in <module>im = cv2.cvtColor(im, cv2.COLOR_GRAY2RGB)
cv2.error: OpenCV(4.4.0) c:\users\appveyor\appdata\local\temp\1\pip-req-build-iw3y3ir8\opencv\modules\imgproc\src\color.simd_helpers.hpp:94: error: (-2:Unspecified error) in function '__cdecl cv::impl::`anonymous-namespace'::CvtHelper<struct cv::impl::`anonymous namespace'::Set<1,-1,-1>,struct cv::impl::A0x4107568d::Set<3,4,-1>,struct cv::impl::A0x4107568d::Set<0,2,5>,2>::CvtHelper(const class cv::_InputArray &,const class cv::_OutputArray &,int)'
> Unsupported depth of input image:
>     'VDepth::contains(depth)'
> where
>     'depth' is 3 (CV_16S)

参考该链接:https://blog.csdn.net/rocking_struggling/article/details/104825407

Dicom文件转mhd,raw文件格式
https://www.cnblogs.com/XDU-Lakers/p/10781321.html

医学影像中的基础知识相关推荐

  1. 深度学习在医学影像中的研究进展及发展趋势

    点击上方蓝字关注我们 深度学习在医学影像中的研究进展及发展趋势 王丽会1,2, 秦永彬1,2 1 贵州省智能医学影像分析与精准诊断重点实验室,贵州 贵阳 550025 2 贵州大学计算机科学与技术学院 ...

  2. 人工智能在医学影像中的研究与应用

    人工智能在医学影像中的研究与应用 韩冬, 李其花, 蔡巍, 夏雨薇, 宁佳, 黄峰 沈阳东软医疗系统有限公司,辽宁 沈阳 110167 慧影医疗科技(北京)有限公司,北京 100192 东软集团股份有 ...

  3. 计算机在医学影像中的应用,计算机图像处理技术在医学影像中的进展与应用

    计算机图像处理技术在医学影像中的进展与应用 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 4.9 积分 生物医学工程学杂志 J . Biou led ...

  4. 第76节:Java中的基础知识

    第76节:Java中的基础知识 设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat 折佣动态代理解决网站的字符集编码问题 使用request. ...

  5. 沈定刚,雷柏英,李超 | Cell Press Live:人工智能在医学影像中的应用

    交叉学科 Interdisciplinary 医学影像是临床医疗诊断的重要依据之一.近些年来,随着信息技术的飞速发展,人工智能即AI也更加广泛地应用于医学影像的处理分析中,包括对图像的分割分类及预测等 ...

  6. 【医学图像智能计算】DL在医学影像中的应用综述—图像重建

    目录 1. 图像重建 1.1 基于深度学习的MRI图像重建 1.1.1 基于数据驱动的端到端深度学习MRI重建方法 1.1.2 基于先验模型的深度学习MRI重建方法 1.2 基于深度学习的低剂量CT成 ...

  7. 计算机在医学影像中的应用,计算机图像处理技术在医学影像中的进展与应用研究...

    计算机图像处理技术在医学影像中的进展与应用研究 摘 要:现在是网络时代,受网络快速发展的影响,也推动医疗行业的革新发展,为医院医疗检测提供了方便.计算机图像处理技术在医学领域应用广泛,医院里现代化的医 ...

  8. oracle不属于dml,Oracle中DML基础知识

    DML(insert,update,delete) 1.插入数据 insert into 表名(列,列...)values(值,值...) //当插入的数据与表格一一对应时,列可以省略 insert ...

  9. Radiomics:使用先进的特征分析方法从医学影像中提取更多信息

    Radiomics:使用先进的特征分析方法从医学影像中提取更多信息 关键字 图像 Radiomics 肿瘤 内部肿瘤 异质性 摘要 实体肿瘤具有空间上和时间上的异质性.这就限制了基于分子检测的侵入性活 ...

  10. C语言中重要基础知识的概述

    本章主要对于C语言中的基础知识进行一个大致的描述,适合有C语言基础但长久没接触C语言开发的人员进行快速回忆.在总体回忆基础知识之前,先来创建一个C程序.笔者的编译器是visual stduio2013 ...

最新文章

  1. fin.is_open()与fin.open()有什么区别?
  2. C# 学习笔记(12)hex文件转bin文件小工具
  3. selenium自动化-单元测试框架
  4. 【剑指offer】21、调整数组顺序使奇数在偶数前面
  5. 每天读5分钟,受益匪浅、
  6. 达梦数据迁移工具的使用
  7. sql语句查询Oracle|sql server|access 数据库里的所有表名,字段名
  8. kubeadm安装kubernetes 1.13.2多master高可用集群
  9. 利用UrlRewrite,asp.net动态生成htm页面(补充说明)
  10. 《深度学习笔记》——线性代数基础
  11. 计算机应用软件专家证,计算机应用软件项目验收报告专家
  12. pycharm添加python注释头_pycharm使用教程——py文件自动添加文件头注释
  13. Linux 常用命令学习-文件及文件夹操作相关命令-持续更新
  14. python查看汉字的编码_python汉字编码
  15. 综合布线实训室解决方案(转载)
  16. 如何用html放音乐播放器,如何用html+js实现音乐歌词同步播放器
  17. 使用深度图重建世界坐标
  18. oracle8ora-00059,ORA-00059错误分析以及MAXDATAFILES、DB_FILES参数修改
  19. Excel画图多个线条样式设置(在黑白下区分各个线条的作用)
  20. Xubuntu之lightdm开机无密码进入界面

热门文章

  1. C#:SqlHelper
  2. Chrome快捷键,电脑高手都这样用
  3. 企业等保分几级?企业三级等保堡垒机必备方案
  4. java流重定向如何分类,Java 文件流與標准流之間的重定向
  5. 利用XrecycleView写多条目展示+流式布局
  6. 肥猫学习日记---数据结构与算法(三)-----链表
  7. Android Bmob后端云简单使用-增删改查
  8. linux内核编译命令 理解,谢烟客---------Linux之理解内核、内核模块、编译内核
  9. PBRT学习笔记:在单位圆内部均匀采样
  10. BPEL与XPDL的定位区别