[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