BestMPRBaseVtk-009-设置默认窗宽窗位

BestMPRBaseVtk-009-设置默认窗宽窗位今天我们来解决一个小问题,就是让图像加载完了,按照图像自带的窗宽窗位显示,这么形容不知道是否准确,大概意思就是这样吧。目前和MITK对比如下图所示:

大家好,又见面了,我是你们的朋友全栈君。
头图

BestMPRBaseVtk 设置默认窗宽窗位

​ 今天我们来解决一个小问题,就是让图像加载完了,按照图像自带的窗宽窗位显示,这么形容不知道是否准确,大概意思就是这样吧。目前和MITK对比如下图所示:

在这里插入图片描述

​ 人家MITK打开图像就已经是最好的状态了,我的呢,一上来就是一片白,读取数据显示我的默认的窗宽和窗位为255 和127 这个应该是一个默认的数值,不测试别的图像也是这个值。

​ 所以,应该是我哪里的姿势不对,使得这两个树有了问题。经过初步调试发现我读到的数据就是这个,如下图所示。

在这里插入图片描述


关键字: 窗宽窗位WindowLevelvtk

1 窗宽、窗位的概念

​ 窗宽是指乳香显示的灰度范围,一般显示器的回复范围为256级,而医学图像灰度则远大于这个显示范围,因此通过显示器显示时是不能同时显示所有的灰度等级,需要使用窗宽来定义要显示的灰度范围。当灰度值高于该范围是,均显示为白色,当灰度值低于该显示范围是,均显示为黑色。如果增大窗宽,则有不同的灰度值的组织结构增多,但会降低灰度值之间的对比度,若减小窗宽,则可视的不同灰度组织机构会减少,同时增大组织结构的对比度。

​ 窗位是窗宽的中心位置,窗宽只是确定了图像在灰度范围上可视的部分,还需要窗位来确定可视灰度范围的具体显示位置,同样的窗宽,会根据窗位的变化显示不同的组织结构,比如窗宽为200 当窗位为100是,显示的可视灰度范围为0-200 ,当窗位为500是,显示的回复范围为400-600,理解了啵。当窗宽和窗位确定以后,显示底层会将可视灰度范围转化为256灰度级进行显示。

2 弄清楚窗宽窗位值来源

在这里插入图片描述

​ 如上图所示,当我点击获取窗宽和窗位时候,默认窗宽为250 默认窗位为127.5。所以要弄清楚这两个值是来自哪里。

image-20211216160240603

​ 如上图所示,当我在读取窗宽窗位的时候,下一层是调用了vtkImageMapToWindowLevelColorsGetWindow()GetLevel()函数。所以我觉得应该看下vtkImageMapToWindowLevelColors的源代码,如下图所示,这样我们知道我们获得的窗宽和窗位实际是vtkImageMapToWindowLevelColors的默认值,而并不是充Dicom文件中读取来的窗宽和窗位。

在这里插入图片描述

​ 现在是找到了默认的窗宽和窗位的出处了,但是怎么修改呢。

3 暂时解决不了

​ 哎嗨,又是一个坑,啥时候填,再说吧,研究怎么读到这东西,扒了vtkDICOMImageReader的源码,里面就没有这参数,在群里也请教了大佬们,确认vtkDICOMImageReader是读不到默认的窗宽窗位信息了。

在这里插入图片描述

在这里插入图片描述

​ 后期这里会有专门的模块来送数据过来,所以这里这个模块里面暂时就不搞他了。此坑更新了再说吧。

☞ 源码

源码链接:GitHub仓库自取

使用方法:☟☟☟

源码


博客签名2021

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149669.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号