我正在实现一个体积渲染器,我想使用窗口传递函数来使用户能够更改某些区域的不透明度。据我了解,window、offset和scale三个变量
窗口是我想要更改 alpha 值的多少,偏移量是我的窗口与最小值之间的距离。但我不确定规模是多少?是一个 alpha 值到下一个 alpha 值之间的增加,还是我当前窗口中的最大 alpha?
我有什么遗漏或有什么问题吗?
这就是我的想法
我正在实现一个体积渲染器,我想使用窗口传递函数来使用户能够更改某些区域的不透明度。据我了解,window、offset和scale三个变量
窗口是我想要更改 alpha 值的多少,偏移量是我的窗口与最小值之间的距离。但我不确定规模是多少?是一个 alpha 值到下一个 alpha 值之间的增加,还是我当前窗口中的最大 alpha?
我有什么遗漏或有什么问题吗?
这就是我的想法
通常,传递函数是从旧 alpha 到新 alpha 的重新映射。根据经验,进入传递函数的值范围与输出的值相同。
因此,如果您的原始 alpha 值在 [0,1] 范围内,那么您的函数产生的值也应该在 [0,1] 范围内。
(顺便说一句:窗口函数是不同的,你可以将它作为传入值的内积相乘)
在这种情况下,“规模”听起来不像是一个标准术语。您需要从向您提供参数的人那里获得确切的定义。
在主要用于医疗体积数据集的 DICOM 中,两个直接相关的标签是:
换句话说,如果 alpha 在值 Value0 之前为 0,并且从 Value1 开始为 1:
WindowCenter = (Value0 + Value1) / 2
WindowWidth = Value1 - Value2
或者以相反的方向编写关系:
Value0 = WindowCenter - WindowWidth / 2
Value1 = WindowCenter + WindowWidth / 2
我在这个领域听到的最接近“缩放”的标准术语是“RescaleIntercept”和“RescaleSlope”标签。但是那些定义了数据本身的线性映射,而不是传递函数。
我最好的猜测是“window”对应于上述定义中的“WindowWidth”,而“offset”对应于“WindowCenter”。但是您确实需要从这些参数的原始来源请求澄清。并问他们“规模”是什么意思。