Apply a Filter to a Specified Region of an Image#

Synopsis#

Computes the derivative of an image in a particular direction.

Results#

Input image

Input image#

Output in QuickView

Output in QuickView#

Code#

C++#

#include "itkImage.h"
#include "itkImageFileReader.h"
#include "itkDerivativeImageFilter.h"

#ifdef ENABLE_QUICKVIEW
#  include "QuickView.h"
#endif

int
main(int argc, char * argv[])
{
  // Verify command line arguments
  if (argc < 2)
  {
    std::cerr << "Usage: " << std::endl;
    std::cerr << argv[0] << " inputImageFile" << std::endl;
    return EXIT_FAILURE;
  }

  // Parse command line arguments
  std::string inputFileName = argv[1];

  // Setup types
  using FloatImageType = itk::Image<float, 2>;
  using UnsignedCharImageType = itk::Image<unsigned char, 2>;

  using filterType = itk::DerivativeImageFilter<UnsignedCharImageType, FloatImageType>;

  const auto input = itk::ReadImage<UnsignedCharImageType>(inputFileName);

  // Create and setup a derivative filter
  auto derivativeFilter = filterType::New();
  derivativeFilter->SetInput(input);
  derivativeFilter->SetDirection(0); // "x" axis

#ifdef ENABLE_QUICKVIEW
  QuickView viewer;

  viewer.AddImage<UnsignedCharImageType>(input);
  viewer.AddImage<FloatImageType>(derivativeFilter->GetOutput());
  viewer.Visualize();
#endif

  return EXIT_SUCCESS;
}

Classes demonstrated#

template<typename TInputImage, typename TOutputImage>
class DerivativeImageFilter : public itk::ImageToImageFilter<TInputImage, TOutputImage>

Computes the directional derivative of an image. The directional derivative at each pixel location is computed by convolution with a derivative operator of user-specified order.

SetOrder specifies the order of the derivative.

SetDirection specifies the direction of the derivative with respect to the coordinate axes of the image.

See

Image

See

Neighborhood

See

NeighborhoodOperator

See

NeighborhoodIterator

ITK Sphinx Examples:

See itk::DerivativeImageFilter for additional documentation.