[vtkusers] Volume subtraction : vtkImageData connection problem.

Alfredo Gourbish the.answer3 at libertysurf.fr
Wed Jul 11 03:26:49 EDT 2007


Hi all,

I have another problem now. To solve the problem with input connection, I 
had to delete a line of my program contatining a delete of the vtkImageData, 
but now even if the program runs without crashing, the volume does not 
appears directly on the screen. In fact I have to move the invisible volume 
using the mouse, and after a few seconds, the volume appears !

Does anybody has any hint ?

Thank's...

Gourbish

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


> 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