[vtkusers] Volume subtraction : vtkImageData connection problem.

Alfredo Gourbish the.answer3 at libertysurf.fr
Fri Jul 6 08:40:25 EDT 2007


Hi Amy,

This is what I hope to do but I have already a problem using vtkImageData. 
So I didn't try to use vtkImageMathematics since the problem persists.

Gourbish.

----- Original Message ----- 
From: "Amy Squillacote" <amy.squillacote at kitware.com>
To: "Alfredo Gourbish" <the.answer3 at libertysurf.fr>
Cc: <vtkusers at vtk.org>
Sent: Friday, July 06, 2007 2:20 PM
Subject: Re: [vtkusers] Volume subtraction : vtkImageData connection 
problem.


> Hi Gourbish,
>
> For doing image subtraction, try vtkImageMathematics. It allows you to do 
> several basic mathematical operations on vtkImageData.
>
> - Amy
>
> Alfredo Gourbish wrote:
>> Hi all,
>>  I have connection problem using vtkImageData.
>> First I will present you what I want to do. I work on a projet which 
>> constructs a 4-D volume from a MRI sequence. One of my goals is to 
>> substract 2 volumes. As I don't find an implemented function to do that 
>> in VTK, I try to access to the voxels of a volume. So I find that the 
>> vtkImageData class allows to access the data.
>> So I just tried to write this line "imageData = imageCast->GetOutput();" 
>> in my code and I have this error while executing the program :
>> "ERROR: In .\vtkDemandDrivenPipeline.cxx, line 799
>> vtkStreamingDemandDrivenPipeline (04FE70A8): Input for connection index 0 
>> on input port index 0 for algorithm vtkVolumeRayCastMapper(04FD14B8) is 
>> NULL, but a vtkImageData is required."
>>
>> Here an abstract of the code :
>>  vtkImageData * imageData = vtkImageData::New(); // with or without "New" 
>> the problem appears
>>  ...
>>  /// read a vtkVolume file ///
>>  structuredPointReader->ReleaseDataFlagOn();
>>  structuredPointReader->SetReleaseDataFlag( true );
>>  structuredPointReader->SetFileName( fileName );
>>  structuredPointReader->Update();
>>  imageCast->SetNumberOfThreads( 4 );
>>  imageCast->SetInputConnection( structuredPointReader->GetOutputPort() );
>>  imageCast->SetOutputScalarTypeToUnsignedChar();
>>  imageData = imageCast->GetOutput();
>>  /////////////////////////////
>>  ...
>>  /// MIP raycast ///
>>  volumeRayCastMapper->SetVolumeRayCastFunction( MIPfunction );
>>  volumeRayCastMapper->ReleaseDataFlagOn();
>>  volumeRayCastMapper->SetInput( this->imageCast->GetOutput() );
>>  //volumeRayCastMapper->SetInput( this->imageData ); // this line is 
>> commented in order to find the error when using imageData
>>  m_lastVolumeCreated->SetMapper( volumeRayCastMapper );
>>  m_lastVolumeCreated->SetProperty( this->volumeProperty );
>>  /////////////////////////////
>> ...
>>  So finally I have two questions :
>> - Why is there a connection problem in this code ?
>> - Is it the goo way to substract 2 volumes ?
>>
>> Does somebody has any idea ?
>>  Thank's in advance. ;-)
>>
>> Gourbish.
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> This is the private VTK discussion list. Please keep messages on-topic. 
>> Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/listinfo/vtkusers
>>
> 






More information about the vtkusers mailing list