[Insight-users] LaplacianImageFilter only works on float or double images?
David Doria
daviddoria at gmail.com
Fri Dec 3 14:29:10 EST 2010
On Fri, Dec 3, 2010 at 2:04 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
> All of the edge detection filters require "float" data types. I assume
> this os because edge detection is sensitive to noise (and probably
> truncation errors). As a test you could turn off concept checking and
> compare an unsigned char result with a float result.
Even with concept checking off, I get errors. Shouldn't it be the
user's responsibility to be aware of the truncation errors you
mentioned?
typedef itk::Image< float, 2 > FloatImageType;
typedef itk::Image< unsigned char, 2 > UnsignedCharImageType;
typedef itk::LaplacianImageFilter<
UnsignedCharImageType, FloatImageType > filterType;
/media/portable/Examples/c++/src/ITK/LaplacianImageFilter/LaplacianImageFilter.cxx:112:
instantiated from here
/home/doriad/src/ITK/Code/BasicFilters/itkLaplacianImageFilter.txx:123:
error: no matching function for call to
‘itk::NeighborhoodOperatorImageFilter<itk::Image<unsigned char, 2u>,
itk::Image<float, 2u>,
float>::OverrideBoundaryCondition(itk::ZeroFluxNeumannBoundaryCondition<itk::Image<float,
2u> >*)’
/home/doriad/src/ITK/Code/BasicFilters/itkNeighborhoodOperatorImageFilter.h:114:
note: candidates are: void
itk::NeighborhoodOperatorImageFilter<TInputImage, TOutputImage,
TOperatorValueType>::OverrideBoundaryCondition(itk::ImageBoundaryCondition<TImage>*)
[with TInputImage = itk::Image<unsigned char, 2u>, TOutputImage =
itk::Image<float, 2u>, TOperatorValueType = float]
David
More information about the Insight-users
mailing list