[Insight-users] RGB Resampling

Bill Lorensen bill.lorensen at gmail.com
Sun Nov 16 00:36:01 EST 2008


Use VectorResampleImageFIlter and VectorLinearInterpolateImageFunction instead.

Examples/Filtering/ResampleImageFilter6.cxx shows how to do the
interpolation with RGB images.

Bill

On Sat, Nov 15, 2008 at 7:02 PM, Leidy Paola Dorado Muñoz
<doradoleidypao at gmail.com> wrote:
>
> hello all,
>
> I'm trying to do a resampling of an RGB image and I have a question about if
> I should take into account additional parameters to define the template,
> because this image isn't  an image of one band.
> This is the code that I implemented:
>
> #if defined(_MSC_VER)
> #pragma warning ( disable : 4786 )
> #endif
>
> #include "itkRGBPixel.h"
> #include "itkImage.h"
> #include "itkImageFileReader.h"
> #include "itkImageFileWriter.h"
> #include "itkResampleImageFilter.h"
> #include "itkIdentityTransform.h"
> #include "itkLinearInterpolateImageFunction.h"
>
>
> int main( int argc , char ** argv[])
> {
>
>   typedef itk::RGBPixel<unsigned char>  PixelType;
>   typedef itk::Image< PixelType, 2 > ImageType;
>
>   typedef itk::ImageFileReader< ImageType >  ImageReaderType;
>   ImageReaderType::Pointer  ImageReader = ImageReaderType::New();
>   ImageReader->SetFileName("Things_new.jpg");
>   ImageReader->Update();
>   ImageType::Pointer image=ImageReader->GetOutput();
>
>   typedef itk:: ResampleImageFilter <ImageType> FilterType;
>   FilterType::Pointer resampler = FilterType::New();
>
>   ImageType::SizeType size;
>   size[0] = 200;
>   size[1] = 300;
>
>   ImageType::IndexType start;
>   start[0]=0;
>   start[1]=0;
>
>
>   ImageType::PointType origin;
>   origin[0]=10.0;
>   origin[1]=25.5;
>
>
>   ImageType::SpacingType spacing;
>   spacing[0]=2.0;
>   spacing[1]=1.5;
>
>   resampler ->SetOutputSpacing(spacing);
>   resampler ->SetOutputOrigin(origin);
>
>   resampler ->SetSize(size);
>   resampler ->SetOutputStartIndex(start);
>
>   resampler ->SetDefaultPixelValue( 100);
>
>   resampler ->SetInput(image);
>
>   typedef itk::LinearInterpolateImageFunction <ImageType, double>
> InterpolatorType;
>   InterpolatorType::Pointer interpolator = InterpolatorType::New();
>
>   typedef itk::TranslationTransform <double,2> TransformType;
>   TransformType::Pointer transform=TransformType::New();
>
>   transform ->SetIdentity();
>
>   resampler ->SetInterpolator(interpolator);
>   resampler ->SetTransform(transform);
>
>   resampler ->Update();
>
>   typedef unsigned char OutputPixelType;
>   typedef itk::Image< OutputPixelType, 2> OutputImageType;
>   typedef itk::ImageFileWriter< OutputImageType >  WriterType;
>
>   WriterType::Pointer      writer =  WriterType::New();
>   writer->SetFileName( "ImageResampled" );
>   writer->SetInput(resampler->GetOutput());
>   writer->Update();
>
>  return EXIT_SUCCESS;
> }
>
> and these are the generated errors :
>
> 1>Compiling...
> 1>ResamplingRGB.cxx
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(26) : error C2976:
> 'itk::ResampleImageFilter' : too few template arguments
> 1>
> w:\registration_review\src\insighttoolkit\code\basicfilters\itkResampleImageFilter.h(79)
> : see declaration of 'itk::ResampleImageFilter'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(27) : error C2955:
> 'itk::ResampleImageFilter' : use of class template requires template
> argument list
> 1>
> w:\registration_review\src\insighttoolkit\code\basicfilters\itkResampleImageFilter.h(79)
> : see declaration of 'itk::ResampleImageFilter'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(27) : error C2955:
> 'itk::ResampleImageFilter' : use of class template requires template
> argument list
> 1>
> w:\registration_review\src\insighttoolkit\code\basicfilters\itkResampleImageFilter.h(79)
> : see declaration of 'itk::ResampleImageFilter'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(27) : error C2514:
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> : class has no constructors
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(47) : error C2678: binary '->' :
> no operator found which takes a left-hand operand of type
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> (or there is no acceptable conversion)
> 1>
> w:\registration_review\src\insighttoolkit\code\common\itkSmartPointer.h(70):
> could be 'TObjectType *itk::SmartPointer<TObjectType>::operator ->(void)
> const'
> 1>        while trying to match the argument list
> '(itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>)'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(47) : error C2039:
> 'SetOutputSpacing' : is not a member of
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(48) : error C2678: binary '->' :
> no operator found which takes a left-hand operand of type
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> (or there is no acceptable conversion)
> 1>
> w:\registration_review\src\insighttoolkit\code\common\itkSmartPointer.h(70):
> could be 'TObjectType *itk::SmartPointer<TObjectType>::operator ->(void)
> const'
> 1>        while trying to match the argument list
> '(itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>)'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(48) : error C2039:
> 'SetOutputOrigin' : is not a member of
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(50) : error C2678: binary '->' :
> no operator found which takes a left-hand operand of type
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> (or there is no acceptable conversion)
> 1>
> w:\registration_review\src\insighttoolkit\code\common\itkSmartPointer.h(70):
> could be 'TObjectType *itk::SmartPointer<TObjectType>::operator ->(void)
> const'
> 1>        while trying to match the argument list
> '(itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>)'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(50) : error C2039: 'SetSize' :
> is not a member of
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(51) : error C2678: binary '->' :
> no operator found which takes a left-hand operand of type
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> (or there is no acceptable conversion)
> 1>
> w:\registration_review\src\insighttoolkit\code\common\itkSmartPointer.h(70):
> could be 'TObjectType *itk::SmartPointer<TObjectType>::operator ->(void)
> const'
> 1>        while trying to match the argument list
> '(itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>)'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(51) : error C2039:
> 'SetOutputStartIndex' : is not a member of
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(53) : error C2678: binary '->' :
> no operator found which takes a left-hand operand of type
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> (or there is no acceptable conversion)
> 1>
> w:\registration_review\src\insighttoolkit\code\common\itkSmartPointer.h(70):
> could be 'TObjectType *itk::SmartPointer<TObjectType>::operator ->(void)
> const'
> 1>        while trying to match the argument list
> '(itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>)'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(53) : error C2039:
> 'SetDefaultPixelValue' : is not a member of
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(55) : error C2678: binary '->' :
> no operator found which takes a left-hand operand of type
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> (or there is no acceptable conversion)
> 1>
> w:\registration_review\src\insighttoolkit\code\common\itkSmartPointer.h(70):
> could be 'TObjectType *itk::SmartPointer<TObjectType>::operator ->(void)
> const'
> 1>        while trying to match the argument list
> '(itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>)'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(55) : error C2039: 'SetInput' :
> is not a member of
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(60) : error C2039:
> 'TranslationTransform' : is not a member of 'itk'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(60) : error C2143: syntax error
> : missing ';' before '<'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(60) : error C4430: missing type
> specifier - int assumed. Note: C++ does not support default-int
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(61) : error C2653:
> 'TransformType' : is not a class or namespace name
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(61) : error C2065: 'Pointer' :
> undeclared identifier
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(61) : error C2146: syntax error
> : missing ';' before identifier 'transform'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(61) : error C2065: 'transform' :
> undeclared identifier
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(61) : error C2653:
> 'TransformType' : is not a class or namespace name
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(61) : error C3861: 'New':
> identifier not found
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(63) : error C2227: left of
> '->SetIdentity' must point to class/struct/union/generic type
> 1>        type is ''unknown-type''
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(65) : error C2678: binary '->' :
> no operator found which takes a left-hand operand of type
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> (or there is no acceptable conversion)
> 1>
> w:\registration_review\src\insighttoolkit\code\common\itkSmartPointer.h(70):
> could be 'TObjectType *itk::SmartPointer<TObjectType>::operator ->(void)
> const'
> 1>        while trying to match the argument list
> '(itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>)'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(65) : error C2039:
> 'SetInterpolator' : is not a member of
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(66) : error C2678: binary '->' :
> no operator found which takes a left-hand operand of type
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> (or there is no acceptable conversion)
> 1>
> w:\registration_review\src\insighttoolkit\code\common\itkSmartPointer.h(70):
> could be 'TObjectType *itk::SmartPointer<TObjectType>::operator ->(void)
> const'
> 1>        while trying to match the argument list
> '(itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>)'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(66) : error C2039:
> 'SetTransform' : is not a member of
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(68) : error C2678: binary '->' :
> no operator found which takes a left-hand operand of type
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> (or there is no acceptable conversion)
> 1>
> w:\registration_review\src\insighttoolkit\code\common\itkSmartPointer.h(70):
> could be 'TObjectType *itk::SmartPointer<TObjectType>::operator ->(void)
> const'
> 1>        while trying to match the argument list
> '(itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>)'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(68) : error C2039: 'Update' : is
> not a member of
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(76) : error C2678: binary '->' :
> no operator found which takes a left-hand operand of type
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> (or there is no acceptable conversion)
> 1>
> w:\registration_review\src\insighttoolkit\code\common\itkSmartPointer.h(70):
> could be 'TObjectType *itk::SmartPointer<TObjectType>::operator ->(void)
> const'
> 1>        while trying to match the argument list
> '(itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>)'
> 1>..\..\src\ResamplingRGB\ResamplingRGB.cxx(76) : error C2039: 'GetOutput' :
> is not a member of
> 'itk::SmartPointer<itk::ResampleImageFilter<TInputImage,TOutputImage,TInterpolatorPrecisionType>>'
> 1>Build log was saved at
> "file://w:\Registration_Review\bin\ResamplingRGB\ResamplingRGB.dir\Debug\BuildLog.htm"
> 1>ResamplingRGB - 34 error(s), 0 warning(s)
> 2>------ Build started: Project: ALL_BUILD, Configuration: Debug x64 ------
> 2>"Build all projects"
> 2>Build log was saved at
> "file://w:\Registration_Review\bin\ResamplingRGB\ALL_BUILD.dir\Debug\BuildLog.htm"
> 2>ALL_BUILD - 0 error(s), 0 warning(s)
> ========== Build: 1 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========
>
> Thanks for the help that you can give me.
>
> --
>
> Leidy Paola Dorado-Muñoz
> Graduate Student
>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
>
>


More information about the Insight-users mailing list