[vtkusers] Obtaining Maximum Intensity Projection image in native data type?

Kischell, Eric R. Kischell.Eric at mayo.edu
Mon Nov 28 14:23:54 EST 2011


Hello VTK Lurkers, 

I've inherited an unorthodox VTK pipeline.
The pipeline typically imports a 16-bit grayscale CT or PET DICOM series
and 
renders maximum intensity projections (off-screen for later static cine
usage).
	...
	renWin->OffScreenRenderingOn();
	w2if->SetInput(renWin);   //  w2if is an vtkWindowToImageFilter

	Export->SetInputConnection(w2if->GetOutputPort());  // Export is
vtkImageExport
	Export->Export(OutBuffer);
vtkWindowToImageFilter appears to be constrained to 24-bit or 32-bit (w/
alpha) unsigned char data.

Ideally, I wish to extract the maximum intensity rendered image in the
*native data type* contrast resolution.
The pipeline uses simple opacity and color transfer functions with
either a vtkVolumeRayCastMapper or a vtkFixedPointVolumeRayCastMapper.
	vtkSmartPointer<vtkPiecewiseFunction> opacityTransferFunction =
vtkSmartPointer<vtkPiecewiseFunction>::New();
    	opacityTransferFunction->AddPoint(0, 0.0);
	opacityTransferFunction->AddPoint(max, 1.0);  // max is the
maximum value in the volume
	vtkSmartPointer<vtkPiecewiseFunction> colorTransferFunction =
vtkSmartPointer<vtkPiecewiseFunction>::New();
	colorTransferFunction->AddPoint(0, 1);  
	colorTransferFunction->AddPoint(255, 1);

Any thoughts on a "hook into" vtkFixedPointVolumeRayCastMIPHelper.cxx /
vtkVolumeRayCastMIPFunction.cxx or 
a method to render off-screen to 16-bit virtual display depth?	
	Note,  vtkVolumeRayCastDynamicInfo:: float Color[4]; also looks
promising.

thx 
keesh
Work Life Plan:
To improve the quality of life for all mankind through better pattern
recognition techniques.






More information about the vtkusers mailing list