[Insight-users] Error :itk::MRIBiasFieldCorrectionFilter may be with src code
Jisung Kim
bahrahm@yahoo.com
Mon, 28 Oct 2002 08:11:48 -0800 (PST)
Thanks Luis,
Jisung.
--- Luis Ibanez <luis.ibanez@kitware.com> wrote:
> Hi Suresh,
>
> You are right,
>
> There is a minor problem with the
> MRIBiasFieldCorrector
> header file.
>
>
> I tried the following simple code:
>
> #include "itkMRIBiasFieldCorrectionFilter.h"
>
> int main()
> {
> typedef unsigned char PixelType;
> typedef itk::Image< PixelType , 3 > ImageType;
> typedef itk::MRIBiasFieldCorrectionFilter<
> ImageType, ImageType, ImageType>
> CorrectorFilterType;
> ImageType::Pointer image = ImageType::New();
> CorrectorFilterType::Pointer corrector =
> CorrectorFilterType::New();
> corrector->SetInput( image );
> return 0;
> }
>
>
> and got the same error that you reported.
>
>
> The reason as you pointed out is that the
> MRIBiasFieldCorrector
> has an internal image type declared in line: 238
> of file
> Code/Algorithms/itkMRIBiasFieldCorrectionFilter.h
>
> This is the input passed to the Energy function.
> However the
> Energyfunction is templated over the first template
> argument
> of the MRIBiasFiledCorrectionFilter, the TInputImage
> instead
> of being templated over this internal image type.
>
>
> In line 253 the declaration of EnergyFunctionType
> should be
>
> typedef MRIBiasEnergyFunction<
> InternalImageType,
> ImageMaskType,
> BiasFieldType > EnergyFunctionType;
>
> instead of the current
>
> typedef MRIBiasEnergyFunction<
> TInputImage,
> ImageMaskType,
> BiasFieldType > EnergyFunctionType;
>
>
> This has been fixed in the repository now.
>
> Thanks for pointing this out.
>
>
> Luis
>
>
>
> ===============================================
>
>
>
>
> suresh wrote:
> > Hi Luis,
> >
> > Thanks for the quick response.
> > But i dont see that the error was due to my
> Imagetype 's but the source
> > code of MRIBiasFieldCorrectionFilter.Let me give
> the full description of
> > my observation.
> >
> > First: My source code for your refernce.
> >
> > //
> > // I have a template class which gives me
> the ITK image when
> > passed a pixel buffer // of any type.
> > // this template class internally creates
> a ImageType with the
> > pixel type passed
> > typedef BufferToImageConversion<unsigned char>
> ConverterType;
> > typedef ConverterType::ImageType ImageType;
> > ConverterType converter;
> > ConverterType::ImagePointer imageMRI =
> converter.GetImage(pMRI);
> >
> > typedef
> itk::MRIBiasFieldCorrectionFilter<ImageType,
> ImageType,
> > ImageType> Corrector;
> > Corrector::Pointer filter = Corrector::New() ;
> >
> > filter->SetInput(imageMRI); // SO THE IMAGE
> IS OF TYPE UNSIGNED
> > CHAR.
> > filter->IsBiasFieldMultiplicative(true) ;
> >
>
filter->SetTissueClassStatistics(classMeans,classSigma)
> ;
> >
> filter->SetUsingInterSliceIntensityCorrection(true);
> > filter->SetSlicingDirection(2) ;
> > ProgressUpdate(35, "Apply filter ",
> MRIVolumeName);
> > filter->Update();
> > ImageType::Pointer imageMRIINHCOR =
> filter->GetOutput();
> >
> >
> > Now My observations is...
> > As the compiler points the error as ...
> > =>
> m_EnergyFunction->SetImage(m_InternalInput) ;
> > =>
>
itk\Algorithms\itkMRIBiasFieldCorrectionFilter.txx(233)
> >
> > the error could ber with the m_EnergyFunction
> or m_InternalInput.The
> > creation of these two is in the source is given as
> >
> > // typedef MRIBiasEnergyFunction<TInputImage,
> ImageMaskType,
> > BiasFieldType>
> > //
>
> > EnergyFunctionType;
> > // typedef typename EnergyFunctionType::Pointer
>
> > EnergyFunctionPointer;
> > // EnergyFunctionPointer m_EnergyFunction ;
> > // typedef Image< float,
> itkGetStaticConstMacro(ImageDimension) >
> > InternalImageType ;
> > // InternalImagePointer m_InternalInput
> >
> >
> > And i dont see any code related to casting the
> float image to unsigned
> > char image.
> > Am i missing any thing here??
> > Do i need to do plug-in any extrac code here??
> > Please help me..
> >
> > Thank you for your time and interest,
> >
> > -suresh
> > _______________________________________________
> > Insight-users mailing list
> > Insight-users@public.kitware.com
> >
>
http://public.kitware.com/mailman/listinfo/insight-users
> >
>
>
>
>
>
=====
Jisung Kim
bahrahm@yahoo.com
106 Mason Farm Rd.
129 Radiology Research Lab., CB# 7515
Univ. of North Carolina at Chapel Hill
Chapel Hill, NC 27599-7515
__________________________________________________
Do you Yahoo!?
Y! Web Hosting - Let the expert host your web site
http://webhosting.yahoo.com/