窗口传递函数

时间:2014-12-06 08:33:09

标签: opengl volume-rendering windowing transfer-function

我正在实现一个体积渲染器,我想使用窗口传递函数来使用户能够改变某些区域的不透明度。 据我所知,有三个变量窗口,偏移量和比例

窗口是我想要更改alpha值的多少值,偏移量是我的窗口距离最小值的距离。 但我不确定规模是多少?它是一个alpha值与下一个alpha值之间的增加,还是我当前窗口中的最大alpha值?

我错过了什么或弄错了什么?

这就是我的想法

This is what I have in mind

2 个答案:

答案 0 :(得分:0)

通常,传递函数是从旧alpha到新alpha的重映射。根据经验,进入传递函数的值范围与出现的值相同。

因此,如果原始alpha值在[0,1]范围内,那么函数产生的值也应该在[0,1]范围内。

(顺便说一句:窗口函数是不同的东西,你将它作为输入值的内积乘以)

答案 1 :(得分:0)

"刻度"在这种情况下听起来不像一个标准术语。您需要从向您提供参数的人那里获得确切的定义。

在主要用于医疗体积数据集的DICOM中,两个直接相关的标签是:

  • WindowCenter,标签(0028,1050)。在图表中,这是倾斜部分的中心位置。
  • WindowWidth,即标签(0028,1051)。在您的图表中,这是倾斜部分的总宽度。

换句话说,如果alpha值为0,则值为Value0,并且从Value1开始为1:

WindowCenter = (Value0 + Value1) / 2
WindowWidth = Value1 - Value2

或者以相反的方向写下关系:

Value0 = WindowCenter - WindowWidth / 2
Value1 = WindowCenter + WindowWidth / 2

最接近"规模"我听说这个领域的标准术语是" RescaleIntercept"和" RescaleSlope"标签。但是那些定义了数据本身的线性映射,而不是传递函数。

我最好的猜测是"窗口"对应于" WindowWidth"在上面的定义中,"偏移"对应于" WindowCenter"。但您确实需要从这些参数的原始来源请求澄清。并问他们他们的意思"规模"。