[Insight-users] writing out a 3D volume

David Brayford dbrayford at gmail.com
Wed Aug 10 13:28:15 EDT 2011


Robert,

I am still getting an incompatible type mismatch. on the line
writer->SetInput( caster->GetOutput() );

error C2664: 'itk::ImageFileWriter<TInputImage>::SetInput' : cannot
convert parameter 1 from 'itk::Image<TPixel,VImageDimension> *' to
'const itk::SmartPointer<TObjectType> *'
          with
          [
              TInputImage=itk::SmartPointer<itk::Image<GenerateDRR::InputPixelType,3>>
          ]
          and
          [
              TPixel=GenerateDRR::InputPixelType,
              VImageDimension=3
          ]
          and
          [
              TObjectType=itk::Image<GenerateDRR::InputPixelType,3>
          ]
         Types pointed to are unrelated; conversion requires
reinterpret_cast, C-style cast or function-style cast


     typedef itk::CastImageFilter< InputImageType, InputImageType >
CastFilterType;
	CastFilterType::Pointer caster = CastFilterType::New();
	caster->SetInput( filter->GetOutput() );

	 // Write the output
	 typedef itk::ImageFileWriter< InputImageType::Pointer > WriterType;
	 WriterType::Pointer writer = WriterType::New();

         // error with caster->GetOutput()
	 writer->SetInput( caster->GetOutput() );
	 writer->SetFileName("output_volume.mhd");
	 writer->Update();
On Wed, Aug 10, 2011 at 11:01 AM, robert tamburo
<robert.tamburo at gmail.com> wrote:
> Try changing
> "typedef itk::ImageFileWriter< InputImageType::ConstPointer > WriterType;"
> to
>
> "typedef itk::ImageFileWriter< InputImageType > WriterType;"
>
> On Wed, Aug 10, 2011 at 12:53 PM, David Brayford <dbrayford at gmail.com>
> wrote:
>>
>> Hi,
>>
>> I am trying to write out a 3D volume in ITK that is loaded in from
>> VTK. However, I am having trouble with conversion errors from const
>> even after looking at some examples.
>>
>>        typedef itk::Image< InputPixelType,  Dimension >   InputImageType;
>>        typedef itk::Image< OutputPixelType, Dimension >   OutputImageType;
>>
>>        InputImageType::ConstPointer imagePtr;
>>
>>        vtkImageData * vol = data->GetVolume()->getImageData();
>>
>>        typedef itk::VTKImageToImageFilter<InputImageType>
>> VTKToITKConnector;
>>    VTKToITKConnector::Pointer VTK_to_ITK_filter =
>> VTKToITKConnector::New();
>>
>>    VTK_to_ITK_filter->SetInput(vol);
>>    VTK_to_ITK_filter->Update();
>>
>>        imagePtr = VTK_to_ITK_filter->GetOutput();
>>
>>        typedef itk::ResampleImageFilter<InputImageType, InputImageType >
>> FilterType;
>>        FilterType::Pointer filter = FilterType::New();
>>        filter->SetInput( imagePtr );
>>        filter->SetDefaultPixelValue( 0 );
>>
>>        typedef itk::CastImageFilter< InputImageType, InputImageType >
>> CastFilterType;
>>        CastFilterType::Pointer caster = CastFilterType::New();
>>        caster->SetInput( filter->GetOutput() );
>>
>>         // Write the output
>>         typedef itk::ImageFileWriter< InputImageType::ConstPointer >
>> WriterType;
>>         WriterType::Pointer writer = WriterType::New();
>>
>>         // problem "itk::image<type, type>" is incompatible with type
>> "const itk::image<type, type>"
>>         writer->SetInput( caster->GetOutput() );
>>
>>
>>         writer->SetFileName("output_volume.mhd");
>>         writer->Update();
>> _____________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Kitware offers ITK Training Courses, for more information visit:
>> http://www.kitware.com/products/protraining.html
>>
>> Please keep messages on-topic and check the ITK FAQ at:
>> http://www.itk.org/Wiki/ITK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.itk.org/mailman/listinfo/insight-users
>
>


More information about the Insight-users mailing list