Hey ITK Dev,
I've had no luck on the user list with this question. Does anyone have any
experience with using ConvolutionImageFilter with complex datasets and
complex kernels?
I'm receiving the following error during the compile process just from
instantiating the filter with the type std::complex<float>
ITK/Modules/Core/Common/include/itkPixelTraits.h:49:60: error: no member
named 'Length' in 'std::complex<double>'
itkStaticConstMacro(Dimension, unsigned int, TPixelType::Length);
I'm also receiving:
ITK/Modules/Core/Common/include/itkPixelTraits.h:52:32: error: no type named
'ValueType' in 'std::complex<double>'
typedef typename TPixelType::ValueType ValueType;
ITK/Modules/Core/Common/include/itkNeighborhoodInnerProduct.hxx:52:7:
error:
cannot convert 'const std::complex<double>' to 'OutputPixelValueType'
(aka 'double') without a conversion
operator
static_cast< OutputPixelValueType >( *o_it ) *
ITK/Modules/Filtering/ImageStatistics/include/itkStatisticsImageFilter.hxx:288:51:
error:
invalid operands to binary expression ('RealType' (aka
'complex<double>') and 'int')
/ ( static_cast< RealType >( count ) - 1 );
ITK/Modules/Filtering/ImageStatistics/include/itkStatisticsImageFilter.hxx:329:16:
error:
invalid operands to binary expression ('PixelType' (aka
'std::complex<double>') and 'PixelType')
if ( value > max )
code:
typedef itk::Image< std::complex<double>, 4> ComplexImageType;
ComplexImageType::RegionType region;
region.SetSize(0,15);
region.SetSize(1,30);
region.SetSize(2,100);
region.SetSize(3,100);
ComplexImageType::RegionType kernelRegion;
kernelRegion.SetSize(0,1);
kernelRegion.SetSize(1,30);
kernelRegion.SetSize(2,100);
kernelRegion.SetSize(3,100);
ComplexImageType::Pointer image = ComplexImageType::New();
image->SetRegions(region);
image->Allocate();
image->FillBuffer(std::complex<double>(1.0,1.0));
ComplexImageType::Pointer kernel = ComplexImageType::New();
kernel->SetRegions(kernelRegion);
kernel->Allocate();
kernel->FillBuffer(std::complex<double>(1.0,1.0));
typedef itk::ConvolutionImageFilter<ComplexImageType>
ConvolutionFilterType;
ConvolutionFilterType::Pointer convolutionFilter =
ConvolutionFilterType::New();
convolutionFilter->SetInput(image);
convolutionFilter->SetKernelImage(kernel);
convolutionFilter->Update();
I have the same errors in 3D, 2D and 1D.
Cheers,
phil
_______________________________________________
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://kitware.com/products/protraining.php
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-developers