医学图像处理涉及到的窗宽窗位 1

先说一下CT值是什么
CT图像反映的是人体对X射线吸收的系数,但我们关心的是各组织结构的密度差异,即相对密度,如果某组织发生病变,其密度就会发生变化,但由于比较吸收系数非常繁琐,于是亨氏把组织器官对X射线的吸收系数换算成CT值,单位是Hu。水的CT值为0Hu,其它不同组织密度都与它进行比较。密度比水大为正值,比水小为负值。人体各组织CT值如图所示。

人体组织CT值

在处理医学图像过程中会遇到图像归一化的问题,一般来说1.标准化(每个像素减去均值,再除以标准差);2.归一化(比如归一化到0~255).
问题在第二步。

如果是将整张图片归一化到0~255,那么就会损失很多信息。因为医学图像像素分布较宽,比如-1000~2000,如果归一化到0~255,那么归一化后的每个像素相当于原始图像的11.7个,很多细节会损失掉。

还有一种是将我们目标区域像素范围归一化到比如0~255,小于这个范围的置为0,大于这个范围的置为255。这就涉及到了窗宽窗位。窗宽(window width,ww)就是CT图像像素范围,窗位(window level,wl)就是窗宽的中心CT值。

举例:(CT值是我随意写的)
我们要分割出头部CT图像中的眼球,假设眼球CT范围比如为50~60,为了突出显示眼球,我们将wl设为55,ww为10,将50~60归一化到0~255,小于50的值置为0,大于60的值置为255.这样就能清楚显示眼球的信息。

在窗宽中的像素能清晰显示,而在窗宽范围外的则没有灰度差别而不能显示。

当然还有别的组织的CT值可能为50~60,但不影响。

VTK(Visualization Toolkit)是一个开源的、跨平台的工具包,用于三维计算机图形学、图像处理和可视化。在VTK中,""(Window Width)和"窗位"(Window Level)是用于控制图像显示的两个重要参数,它们与医学图像的灰度显示密切相关。在处理和显示图像时,统一视图的窗位意味着确保在不同视图或图像之间具有相同的显示效果。 在VTK中统一视图的窗位通常涉及以下步骤: 1. 确定窗位的值。这些值通常根据图像的特点或者特定的可视化需求来确定。例如,在医学成像中,窗位的设置可以帮助医生识别不同类型的组织。 2. 设置图像的渲染器或渲染口的窗位。这可以通过使用`vtkImageMapToWindowLevelColors`过滤器或者直接在渲染器设置中指定。 3. 应用相同的窗位设置到不同的视图中。如果要在多个视图中显示相同的窗位,可以在每个视图的渲染器中设置相同的参数。 4. 更新渲染器,使得新的设置生效。 下面是一个简单的代码示例,说明如何在VTK中设置窗位: ```cpp vtkNew<vtkImageActor> actor; vtkNew<vtkImageMapper> mapper; mapper->SetInputConnection(imageReader->GetOutputPort()); actor->GetMapper()->SetInputConnection(imageReader->GetOutputPort()); actor->GetMapper()->SetColorWindow(1600); // 设置 actor->GetMapper()->SetColorLevel(800); // 设置窗位 vtkNew<vtkRenderer> renderer; renderer->AddActor(actor); renderer->SetBackground(0.1, 0.2, 0.4); vtkNew<vtkRenderWindow> renderWindow; renderWindow->AddRenderer(renderer); renderWindow->Render(); ``` 在这个例子中,我们创建了一个图像演员(`vtkImageActor`),并将图像映射器(`vtkImageMapper`)与之关联。我们通过`SetColorWindow`和`SetColorLevel`方法来设置窗位,并将该演员添加到渲染器中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值