⼏种常⽤颜⾊传递函数和透明度传递函数
1.MIP
2.CompositeRamp
3.CompositeShadeRamp
4.CT_Skin
5.CT_Bone
6.CT_Muscle
7.RGB_Composite
// MIP
// Create an opacity ramp from the window and level values.
// Color is white. Blending is MIP.
ca0:
colorFun->AddRGBSegment(0.0,1.0,1.0,1.0,255.0,1.0,1.0,1.0);
opacityFun->AddSegment( opacityLevel -0.5*opacityWindow,0.0,
opacityLevel +0.5*opacityWindow,1.0);
mapper->SetBlendModeToMaximumIntensity();
break;
// CompositeRamp
// Create a ramp from the window and level values. U compositing
// without shading. Color is a ramp from black to white.
ca1:
colorFun->AddRGBSegment(opacityLevel -0.5*opacityWindow,0.0,0.0,0.0,
opacityLevel +0.5*opacityWindow,1.0,1.0,1.0);
opacityFun->AddSegment( opacityLevel -0.5*opacityWindow,0.0,
opacityLevel +0.5*opacityWindow,1.0);
mapper->SetBlendModeToComposite();
property->ShadeOff();
break;
// CompositeShadeRamp
// Create a ramp from the window and level values. U compositing
// with shading. Color is white.
ca2:
colorFun->AddRGBSegment(0.0,1.0,1.0,1.0,255.0,1.0,1.0,1.0);
opacityFun->AddSegment( opacityLevel -0.5*opacityWindow,0.0,
opacityLevel +0.5*opacityWindow,1.0);
mapper->SetBlendModeToComposite();
property->ShadeOn();
break;
// CT_Skin
// U compositing and functions t to highlight skin in CT data
// Not for u on RGB data
ca3:
colorFun->AddRGBPoint(-3024,0,0,0,0.5,0.0);
colorFun->AddRGBPoint(-1000,.62,.36,.18,0.5,0.0);
colorFun->AddRGBPoint(-500,.88,.60,.29,0.33,0.45);
colorFun->AddRGBPoint(3071,.83,.66,1,0.5,0.0);
opacityFun->AddPoint(-3024,0,0.5,0.0);
opacityFun->AddPoint(-1000,0,0.5,0.0);
opacityFun->AddPoint(-500,1.0,0.33,0.45);
opacityFun->AddPoint(3071,1.0,0.5,0.0);
mapper->SetBlendModeToComposite();
property->ShadeOn();
property->SetAmbient(0.1);
property->SetDiffu(0.9);
property->SetSpecular(0.2);
property->SetSpecularPower(10.0);
property->SetScalarOpacityUnitDistance(0.8919);
property->SetScalarOpacityUnitDistance(0.8919);
break;
// CT_Bone
// U compositing and functions t to highlight bone in CT data
// Not for u on RGB data
ca4:
colorFun->AddRGBPoint(-3024,0,0,0,0.5,0.0);
colorFun->AddRGBPoint(-16,0.73,0.25,0.30,0.49,.61);
colorFun->AddRGBPoint(641,.90,.82,.56,.5,0.0);
colorFun->AddRGBPoint(3071,1,1,1,.5,0.0);
opacityFun->AddPoint(-3024,0,0.5,0.0);
opacityFun->AddPoint(-16,0,.49,.61);
opacityFun->AddPoint(641,.72,.5,0.0);
opacityFun->AddPoint(3071,.71,0.5,0.0);
mapper->SetBlendModeToComposite();
property->ShadeOn();
property->SetAmbient(0.1);
property->SetDiffu(0.9);
property->SetSpecular(0.2);
property->SetSpecularPower(10.0);
property->SetScalarOpacityUnitDistance(0.8919);
break;
// CT_Muscle
// U compositing and functions t to highlight muscle in CT data
// Not for u on RGB data
ca5:
colorFun->AddRGBPoint(-3024,0,0,0,0.5,0.0);
colorFun->AddRGBPoint(-155,.55,.25,.15,0.5,.92);
colorFun->AddRGBPoint(217,.88,.60,.29,0.33,0.45);
colorFun->AddRGBPoint(420,1,.94,.95,0.5,0.0);
colorFun->AddRGBPoint(3071,.83,.66,1,0.5,0.0);
opacityFun->AddPoint(-3024,0,0.5,0.0);
opacityFun->AddPoint(-155,0,0.5,0.92);
opacityFun->AddPoint(217,.68,0.33,0.45);
opacityFun->AddPoint(420,.83,0.5,0.0);
opacityFun->AddPoint(3071,.80,0.5,0.0);
mapper->SetBlendModeToComposite();
property->ShadeOn();
property->SetAmbient(0.1);
property->SetDiffu(0.9);
property->SetSpecular(0.2);
property->SetSpecularPower(10.0);
property->SetScalarOpacityUnitDistance(0.8919);
break;
// RGB_Composite
// U compositing and functions t to highlight red/green/blue regions // in RGB data. Not for u on single component data
ca6:
opacityFun->AddPoint(0,0.0);
opacityFun->AddPoint(5.0,0.0);
opacityFun->AddPoint(30.0,0.05);
opacityFun->AddPoint(31.0,0.0);
opacityFun->AddPoint(90.0,0.0);
opacityFun->AddPoint(100.0,0.3);
opacityFun->AddPoint(110.0,0.0);
opacityFun->AddPoint(190.0,0.0);
opacityFun->AddPoint(200.0,0.4);
opacityFun->AddPoint(210.0,0.0);
opacityFun->AddPoint(245.0,0.0);
opacityFun->AddPoint(245.0,0.0);
opacityFun->AddPoint(255.0,0.5);
mapper->SetBlendModeToComposite();
property->ShadeOff();
property->SetScalarOpacityUnitDistance(1.0);
break;