年糕小豆汤a 2023-07-26 19:18 采纳率: 0%
浏览 11

关于图像处理问题:CT图像预处理

想问一下大家 在做CT图像预处理的时候 根据数据集提供的信息 需要先从像素中减去32768获得HU值 再调整窗宽窗位【-1024, 3071】,可是得到的结果是全黑的

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-07-26 22:44
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 这篇博客: CT图像预处理之窗宽窗位调整中的 1 CT图像的Hu值变换 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      CT值属于医学领域的概念,通常称亨氏单位(hounsfield unit,HU),反映了组织对X射线的吸收程度。黑影表示低吸收区,即低密度区,如含气体多的肺部;白影表示高吸收区,即高密度区,如骨骼。但是CT 和X线图像相比,CT的密度分辨力高,即有高的密度分辨力(density resolution)。因此,人体软组织的密度差别虽小。吸收系数虽多接近于水,也能形成对比而

      成像。解剖成像。

      灰度值属于计算机领域的概念,指的是单个像素点的亮度,灰度值越大表示越亮。范围一般从0到255,白色为255,黑色为0,故黑白图片也称为灰度图像。

      两种最常用的医学图像数据格式:DICOM类型NIFTI类型

      DICOM类型的文件后缀为dcm,常用的python处理库有:SimpleITK,pydicom库

      NIFTI类型的文件后缀为niinii.gz,常用的python处理库有:SimpleITK,nibabel库

      :无论对于dcm还是nii格式的图片,只要是ct图,为了更好地观察不同器官,都可以选择将储存的原始数据转化为Hu值,因为Hu值即代表了物体真正的密度。

             对于nii格式的图片,SimpleITK,nibabel中常用的api接口,都会自动的进行上述转化过程,即取出来的值已经是Hu了。除非专门用nib.load('xx').dataobj.get_unscaled()或者itk.ReadImage('xx').GetPixel(x,y,z)才能取得原始数据

             对于dcm格式的图片,SimpleITK,pydicom常用的api接口都不会将原始数据自动转化为Hu。(itk snap软件读入dcm或nii都不会对数据进行scale操作)

      公式与代码:

      HU = pixel_val*slope + intercept

      其中,slope,intercept可以从元数据中读取

      def get_pixels_hu(ct_array,slope,intercept):
          if slope != 1:
              ct_array = slope*ct_array
          ct_array += intercept
          return ct_array

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 7月26日

悬赏问题

  • ¥20 只有一个C盘,磁盘管理分区
  • ¥15 PVE8.2版本ceph的监控项状态stopped不能销毁
  • ¥15 如何加快视频观看速度?
  • ¥15 HP P2000存储 硬盘损坏两块如何更换
  • ¥15 c#的richTextBox控件有更好的替代品吗
  • ¥15 ntrip协议发送失败
  • ¥15 关于#c语言#的问题:c语言main函数括弧里为什么有时候加void
  • ¥15 如何利用R语言对语料库之间数据差异性分析
  • ¥20 如何制作支付宝扫码跳转到发红包
  • ¥15 STM32F103C8T6使用标准库stm32f10x.h驱动ws2812