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)
blank

相关推荐

  • idea2021.4.2激活码失效_通用破解码「建议收藏」

    idea2021.4.2激活码失效_通用破解码,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • NHibernate教程

    NHibernate教程 一、NHibernate简介在今日的企业环境中,把面向对象的软件和关系数据库一起使用可能是相当麻烦、浪费时间的。NHibernate是一个面向.Net环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relationalmapping(ORM))这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。NHibernate除了能将一张表映射为

  • springboot实现拦截器_Spring拦截器

    springboot实现拦截器_Spring拦截器集成拦截器登录验证为例添加拦截器public class LoginInterceptor implements HandlerInterceptor { private Logger log = LoggerFactory.getLogger(getClass()); //Controller逻辑执行之前 @Override public boolean preHandle(HttpServletRequest request, HttpServletRe

  • SQL中decimal的相关使用[通俗易懂]

    SQL中decimal的相关使用[通俗易懂]decimal用于表示定点实数,具体使用格式为:decimal[(p[,s])],其中p表示精度,用于指定小数点左边和右边十进制数字的最大位数,取值在1-38之间,缺省值为18,s指定小数点右边十进制数的最大位数,取值在0-p之间缺省值为0(此时小数点后面没有小数位,所有输入的小数位都会被自动四舍五入)。故而定义了一个decimal类型的变量的时候,要注意这个否则就会发生越界的情况。…

  • Google资深工程师深度讲解Go语言-内建容器(三)[通俗易懂]

    Google资深工程师深度讲解Go语言-内建容器(三)

  • 怎样在python上安装jieba库_无法安装lxml库

    怎样在python上安装jieba库_无法安装lxml库jieba库是python的一个三方扩展库,想要使用就需要大家下载和安装之后才可以,但有不少同学不知道该如何操作。今天小千就来给大家介绍如何安装jieba库。安装jieba库步骤在安装之前同学们一定要正确安装python运行环境,这一步就不介绍了。1.之后我们打开CMD命令提示,按下win+r,在里面输入CDM即可。2.随后我们在打开的窗口中直接输入命令:pipinstalljieba,然后按下回车之后就会自动开始下载安装,我们只需要等待一会即可。3.安装完成之后,如果不确定是否正确安装,

发表回复

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

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