[vtkusers] Does anybody has a sample of new class vtkImageSlice Or correct my code.
    shiina 
    shiina at yndrd.com
       
    Sun May 29 23:31:20 EDT 2011
    
    
  
Hello VTK users,
I found great python example of new class vtkImageSlice that was written by
David Gobbi.
https://github.com/dgobbi/VTK/blob/master/Examples/ImageProcessing/Python/ImageInteractorReslice.py
And, I got oblique plane images of voxel data at last.
My example of c++ is as follows.
-----------------------------------------------------------
int main(int argc, char *argv[])
{
	if (argc < 2) {
		cout << "Usage: " << argv[0] << " DATADIR/prefix" << endl;
		return EXIT_FAILURE;
	}
	vtkSmartPointer<vtkRenderer> aRenderer =
vtkSmartPointer<vtkRenderer>::New();
	vtkSmartPointer<vtkRenderWindow> renWin =
vtkSmartPointer<vtkRenderWindow>::New();
	renWin->AddRenderer(aRenderer);
	vtkSmartPointer<vtkRenderWindowInteractor> iren =
vtkSmartPointer<vtkRenderWindowInteractor>::New();
	iren->SetRenderWindow(renWin);
	aRenderer->SetBackground(.2, .3, .4);
	renWin->SetSize(640, 480);
	// vtkVolume16Reader Setting
	vtkSmartPointer<vtkVolume16Reader> v16 =
vtkSmartPointer<vtkVolume16Reader>::New();
	v16->SetDataDimensions (426,426);
	v16->SetImageRange (1,318);
	v16->SetDataByteOrderToLittleEndian();
	v16->SetFilePrefix (argv[1]);
	v16->SetDataSpacing (1.0, 1.0, 1.0);
	v16->Update();
	// outline provides context around the data.
	vtkSmartPointer<vtkOutlineFilter> outlineData =
vtkSmartPointer<vtkOutlineFilter>::New();
	outlineData->SetInputConnection(v16->GetOutputPort());
	outlineData->Update();
	vtkSmartPointer<vtkPolyDataMapper> mapOutline =
vtkSmartPointer<vtkPolyDataMapper>::New();
	mapOutline->SetInputConnection(outlineData->GetOutputPort());
	vtkSmartPointer<vtkActor> outline =	vtkSmartPointer<vtkActor>::New();
	outline->SetMapper(mapOutline);
	outline->GetProperty()->SetColor(0,0,0);
	// Setting of vtkImageResliceMapper
	vtkSmartPointer<vtkImageResliceMapper> im =
vtkSmartPointer<vtkImageResliceMapper>::New();
	im->SetInputConnection(v16->GetOutputPort());
	im->SliceFacesCameraOn();
	im->SliceAtFocalPointOn();
	im->BorderOff();
	// Setting of vtkImageProperty
	vtkSmartPointer<vtkImageProperty> ip =
vtkSmartPointer<vtkImageProperty>::New();
	ip->SetColorWindow(2000);
	ip->SetColorLevel(1000);
	ip->SetAmbient(0.0);
	ip->SetDiffuse(1.0);
	ip->SetOpacity(1.0);
	ip->SetInterpolationTypeToLinear();
	// Try of vtkImageSlice
	vtkSmartPointer<vtkImageSlice> imageSlice =
vtkSmartPointer<vtkImageSlice>::New();
	vtkSmartPointer<vtkInteractorStyleImage > styleImage =
vtkSmartPointer<vtkInteractorStyleImage >::New();
	imageSlice->SetMapper(im);
	imageSlice->SetProperty(ip);
	styleImage->SetInteractionModeToImage3D();
	iren->SetInteractorStyle(styleImage);
	renWin->SetInteractor(iren);
	// Actors are added to the renderer. 
	aRenderer->AddActor(outline);
	aRenderer->AddViewProp(imageSlice);
	// camera Setting
	vtkSmartPointer<vtkCamera> aCamera = vtkSmartPointer<vtkCamera>::New();
	aCamera->SetViewUp (0, 0, -1);
	aCamera->SetPosition (0, 1, 0);
	aCamera->SetFocalPoint (0, 0, 0);
	aCamera->ComputeViewPlaneNormal();
	aCamera->Azimuth(30.0);
	aCamera->Elevation(30.0);
	aCamera->ParallelProjectionOn();
	aRenderer->SetActiveCamera(aCamera);
	renWin->Render();
	aRenderer->ResetCamera();
	aRenderer->ResetCameraClippingRange();
	// interact with data
	iren->Initialize();
	iren->Start(); 
	return EXIT_SUCCESS;
}
-----------------------------------------------------------
Thank you very much.
SHIINA Hideaki
--
View this message in context: http://vtk.1045678.n5.nabble.com/Does-anybody-has-a-sample-of-new-class-vtkImageSlice-Or-correct-my-code-tp4430673p4438235.html
Sent from the VTK - Users mailing list archive at Nabble.com.
    
    
More information about the vtkusers
mailing list