ITK/Examples/ImageProcessing/NormalizeImageFilter: Difference between revisions

From KitwarePublic
< ITK‎ | Examples
Jump to navigationJump to search
No edit summary
(Deprecated content that is moved to sphinx)
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
<div class="floatcenter">[[File:ITK_Examples_Baseline_ImageProcessing_TestNormalizeImageFilter.png]]</div>
{{warning|1=The media wiki content on this page is no longer maintainedThe examples presented on the https://itk.org/Wiki/* pages likely require ITK version 4.13 or earlier releasesIn many cases, the examples on this page no longer conform to the best practices for modern ITK versions.
Normalize an image by setting its mean to 0 and variance to 1.
}}
==NormalizeImageFilter.cxx==
<source lang="cpp">
#include "itkImage.h"
#include "itkImageFileReader.h"
#include "itkNormalizeImageFilter.h"
#include "itkStatisticsImageFilter.h"
 
#include "QuickView.h"
 
#include <iomanip>
 
int main(int argc, char *argv[])
{
  if(argc < 2)
    {
    std::cerr << "Usage: " << argv[0] << " filename" << std::endl;
    return EXIT_FAILURE;
    }
 
  typedef itk::Image<double, 2> FloatImageType;
 
  typedef itk::ImageFileReader<FloatImageType>
    ReaderType;
  ReaderType::Pointer reader = ReaderType::New();
  reader->SetFileName(argv[1]);
 
  typedef itk::NormalizeImageFilter< FloatImageType, FloatImageType >
    NormalizeFilterType;
  NormalizeFilterType::Pointer normalizeFilter = NormalizeFilterType::New();
  normalizeFilter->SetInput(reader->GetOutput());
 
  typedef itk::StatisticsImageFilter< FloatImageType >
    StatisticsFilterType;
  StatisticsFilterType::Pointer statistics1 = StatisticsFilterType::New();
  statistics1->SetInput(reader->GetOutput());
 
  StatisticsFilterType::Pointer statistics2 = StatisticsFilterType::New();
  statistics2->SetInput(normalizeFilter->GetOutput());
 
  QuickView viewer;
 
  std::stringstream desc1;
  statistics1->Update();
  desc1 << itksys::SystemTools::GetFilenameName(argv[1])
        << "\nMean: " << statistics1->GetMean()
        << " Variance: " << statistics1->GetVariance();
  viewer.AddImage(
    reader->GetOutput(),
    true,
    desc1.str());  
 
  std::stringstream desc2;
  statistics2->Update();
  desc2 << "Normalize"
        << "\nMean: "
        << std::fixed << std::setprecision (2) << statistics2->GetMean()
        << " Variance: " << statistics2->GetVariance();
  viewer.AddImage(
    normalizeFilter->GetOutput(),
    true,
    desc2.str()); 
 
   viewer.Visualize();
 
  return EXIT_SUCCESS;
}
</source>
 
==CMakeLists.txt==
<source lang="cmake">
cmake_minimum_required(VERSION 2.6)
 
PROJECT(NormalizeImageFilter)
 
include_directories(/home/doriad/src/ITK/Wrapping/WrapITK/ExternalProjects/ItkVtkGlue/src/)
 
FIND_PACKAGE(VTK REQUIRED)
INCLUDE(${VTK_USE_FILE})
 
FIND_PACKAGE(ITK REQUIRED)
INCLUDE(${ITK_USE_FILE})
 
ADD_EXECUTABLE(NormalizeImageFilter NormalizeImageFilter.cxx)
TARGET_LINK_LIBRARIES(NormalizeImageFilter
vtkHybrid
ITKIO ITKBasicFilters ITKCommon
)
 
 
</source>

Latest revision as of 20:32, 5 June 2019

Warning: The media wiki content on this page is no longer maintained. The examples presented on the https://itk.org/Wiki/* pages likely require ITK version 4.13 or earlier releases. In many cases, the examples on this page no longer conform to the best practices for modern ITK versions.