ITK/Examples/ImageProcessing/NormalizeImageFilter: Difference between revisions
From KitwarePublic
Jump to navigationJump to search
Daviddoria (talk | contribs) |
(Use QuickView. Make example more illustrative.) |
||
Line 4: | Line 4: | ||
#include "itkImageFileReader.h" | #include "itkImageFileReader.h" | ||
#include "itkNormalizeImageFilter.h" | #include "itkNormalizeImageFilter.h" | ||
#include " | #include "itkStatisticsImageFilter.h" | ||
#include | #include "QuickView.h" | ||
#include | #include <iomanip> | ||
int main(int argc, char *argv[]) | int main(int argc, char *argv[]) | ||
Line 19: | Line 14: | ||
if(argc < 2) | if(argc < 2) | ||
{ | { | ||
std::cerr << " | std::cerr << "Usage: " << argv[0] << " filename" << std::endl; | ||
return EXIT_FAILURE; | return EXIT_FAILURE; | ||
} | } | ||
typedef itk::Image< | typedef itk::Image<double, 2> FloatImageType; | ||
typedef itk::ImageFileReader< | typedef itk::ImageFileReader<FloatImageType> | ||
ReaderType; | |||
ReaderType::Pointer reader = ReaderType::New(); | ReaderType::Pointer reader = ReaderType::New(); | ||
reader->SetFileName(argv[1]); | reader->SetFileName(argv[1]); | ||
typedef itk::NormalizeImageFilter< FloatImageType, FloatImageType > | |||
NormalizeFilterType; | |||
typedef itk::NormalizeImageFilter< | |||
NormalizeFilterType::Pointer normalizeFilter = NormalizeFilterType::New(); | NormalizeFilterType::Pointer normalizeFilter = NormalizeFilterType::New(); | ||
normalizeFilter->SetInput(reader->GetOutput()); | normalizeFilter->SetInput(reader->GetOutput()); | ||
typedef itk:: | 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; | return EXIT_SUCCESS; |
Revision as of 04:45, 21 December 2010
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>