带有非线性标签的vtkScalarBar

时间:2015-08-14 15:56:35

标签: c++ vtk

有没有办法让标量栏不自动将我的标签设置为线性值?

我想访问标签表并更改自己的值,使其遵循我自己的公式。

// scalar bar
_hueLut = vtkLookupTable::New();
_hueLut->SetNumberOfTableValues(100);
_hueLut->SetTableRange(0, 100);
_hueLut->SetTableValue(0, 0, 0, 1);
_hueLut->SetTableValue(1, 0, 1, 0);
//etc...
_hueLut->Build();


_scalarBar = vtkScalarBarActor::New();
_scalarBar->SetLookupTable(_hueLut);
_scalarBar->SetTitle("logarithm scalar bar");
_scalarBar->SetNumberOfLabels(5);
_scalarBar->SetLabelFormat("%5.4g");

问题是我的标量条标签似乎显示值0,25,50,75和100.我希望能够更改标签值。例如:0,10,25,50,100。

谢谢。

1 个答案:

答案 0 :(得分:0)

不直接支持指定自己的函数,vtkLookupTable中只实现了线性和对数比例,这是标量条值颜色映射的类。 但是,您可以轻松地从vtkLookupTable派生并覆盖Build()方法以实现任意映射。请参阅vtkWindowLevelLookupTable以获取一个好例子。

如果您只需要日志转换,请在您的帐号上设置SetScaleToLog10() LUT。并确保范围是正的。

斜坡功能有3个选项,可让您调整颜色变化的方式,颜色和灵敏度"你可以说。 S曲线(默认),在范围的末端,线性和sqrt,使您更加渐进。有关详细信息,请参阅文档。

HTH,

米罗