medimage 发表于 2015-12-6 12:27:08

VTK例子21-Volum

Volum#include "stdafx.h"#include "vtkRenderer.h"#include "vtkRenderWindow.h"#include "vtkRenderWindowInteractor.h"#include "vtkProperty.h"#include "vtkCamera.h"#include "vtkStructuredPointsReader.h"#include "vtkPiecewiseFunction.h"#include "vtkColorTransferFunction.h"#include "vtkVolumeProperty.h"#include "vtkColorTransferFunction.h"#include "vtkVolumeRayCastCompositeFunction.h"#include "vtkVolumeRayCastMapper.h" #pragma comment (lib, "vtkFiltering.lib")#pragma comment (lib, "vtkRendering.lib")#pragma comment (lib, "vtkIO.lib")#pragma comment (lib, "vtkVolumeRendering.lib") int main (int argc, char **argv){    vtkRenderer *aRenderer = vtkRenderer::New();    vtkRenderWindow *renWin = vtkRenderWindow::New();    renWin->AddRenderer(aRenderer);    vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();    iren->SetRenderWindow(renWin);        vtkStructuredPointsReader *reader = vtkStructuredPointsReader::New();    //reader->SetFileName(".\\ironProt.vtk");    reader->SetFileName("ironProt.vtk");     vtkVolumeRayCastCompositeFunction *ComositeFun = vtkVolumeRayCastCompositeFunction::New();    vtkVolumeRayCastMapper *VolMapper = vtkVolumeRayCastMapper::New();    VolMapper->SetInputConnection(reader->GetOutputPort());    VolMapper->SetVolumeRayCastFunction(ComositeFun);        vtkVolume *Volume = vtkVolume::New();    Volume->SetMapper(VolMapper);     vtkColorTransferFunction *gTFun = vtkColorTransferFunction::New();    //gTFun->AddRGBSegment(128.0,126/255.0,16/255.0,16/255.0,    255.0,64/255.0,255/255.0,16/255.0);        gTFun->AddRGBSegment(127.0,126/127.0,16/127.0,16/127.0,    255.0,64/255.0,255/255.0,16/255.0);        vtkVolumeProperty *VolProperty = vtkVolumeProperty::New();    VolProperty->SetColor(gTFun);        vtkPiecewiseFunction *oTFun = vtkPiecewiseFunction::New();    oTFun->AddSegment(48,0.0,256,1.0);//改变第一个数据,可以得到不同的体透明度    VolProperty->SetScalarOpacity(oTFun);    VolProperty->SetInterpolationTypeToLinear();    VolProperty->ShadeOn();    Volume->SetProperty(VolProperty);        aRenderer->AddActor(Volume);    aRenderer->SetBackground(0,0,0);    //renWin->SetSize(640,480);    renWin->SetSize(1280,480);    aRenderer->ResetCameraClippingRange();    iren->Initialize();    iren->Start();     aRenderer->Delete();    renWin->Delete();    iren->Delete();        return 0;}

medrt 发表于 2016-5-13 10:40:04

谢谢LZ

medimagedev 发表于 2016-5-14 05:37:40

看看!!!!!谢谢楼主!!!

江西丁工 发表于 2016-5-19 11:16:58

学习了!!!!!!!!!

hosstd 发表于 2016-5-20 01:43:07

看看,学学

mdeimage 发表于 2016-5-22 14:35:49

先学习一下,以留备用
页: [1]
查看完整版本: VTK例子21-Volum