Difference between revisions of "ITK/Examples/EdgesAndGradients/GradientMagnitudeImageFilter"

From KitwarePublic
< ITK‎ | Examples
Jump to navigationJump to search
Line 1: Line 1:
<div class="floatright">[[File:ITK_Examples_Baseline_EdgesAndGradients_TestGradientMagnitudeImageFilter.png]]</div>
This example demonstrates how to compute the magnitude of the gradient of an image. The original image and an image of the gradient magnitude are displayed.
This example demonstrates how to compute the magnitude of the gradient of an image. The original image and an image of the gradient magnitude are displayed.



Revision as of 04:39, 13 December 2010

ITK Examples Baseline EdgesAndGradients TestGradientMagnitudeImageFilter.png

This example demonstrates how to compute the magnitude of the gradient of an image. The original image and an image of the gradient magnitude are displayed.

GradientMagnitudeImageFilter.cxx

#include "itkImage.h"
#include "itkImageFileReader.h"
#include "itkImageFileWriter.h"
#include "itkRescaleIntensityImageFilter.h"
#include "itkGradientMagnitudeImageFilter.h"

#include "QuickView.h"

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
  typedef itk::Image< unsigned char,  2 >  UnsignedCharImageType;
  typedef itk::Image< float,  2 >   FloatImageType;
  typedef itk::ImageFileReader< UnsignedCharImageType >  readerType;

  typedef itk::GradientMagnitudeImageFilter<
		  UnsignedCharImageType, FloatImageType >  filterType;

  // Create and setup a reader
  readerType::Pointer reader = readerType::New();
  reader->SetFileName( inputFilename.c_str() );

  // Create and setup a gradient filter
  filterType::Pointer gradientFilter = filterType::New();
  gradientFilter->SetInput( reader->GetOutput() );
  gradientFilter->Update();

  QuickView viewer;
  viewer.AddImage<UnsignedCharImageType>(reader->GetOutput());
  viewer.AddImage<FloatImageType>(gradientFilter->GetOutput());
  viewer.Visualize();

  return EXIT_SUCCESS;
}

CMakeLists.txt

cmake_minimum_required(VERSION 2.6)

PROJECT(GradientMagnitudeImageFilter)

FIND_PACKAGE(ITK REQUIRED)
INCLUDE(${ITK_USE_FILE})

ADD_EXECUTABLE(GradientMagnitudeImageFilter GradientMagnitudeImageFilter.cxx)
TARGET_LINK_LIBRARIES(Gradient 
vtkHybrid
ITKBasicFilters ITKIO ITKCommon)