/*========================================================================= Program: ORFEO Toolbox Language: C++ Date: $Date$ Version: $Revision$ Copyright (c) Centre National d'Etudes Spatiales. All rights reserved. See OTBCopyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #if defined(_MSC_VER) #pragma warning ( disable : 4786 ) #endif #include "itkImage.h" #include "itkImageFileReader.h" #include "itkImageFileWriter.h" #include "itkExtractImageFilter.h" #include "itkCannyEdgeDetectionImageFilter.h" #include "itkRescaleIntensityImageFilter.h" int main(int argc, char* argv[]) { if(argc != 5) { std::cout<<"Invalid input args (input, outputFullImage, outputExtractImage, indexExtraction)"< InputImageType; typedef itk::Image OutputImageType; typedef itk::ImageFileReader ReaderType; typedef itk::ImageFileWriter WriterType; typedef itk::ExtractImageFilter ExtractType; typedef itk::CannyEdgeDetectionImageFilter CannyType; typedef itk::RescaleIntensityImageFilter RescalerType; /**************** * PROCESSING OVER FULL IMAGE ****************/ ReaderType::Pointer reader = ReaderType::New(); WriterType::Pointer writer = WriterType::New(); CannyType::Pointer canny = CannyType::New(); RescalerType::Pointer rescaler = RescalerType::New(); InputImageType::SizeType size; size.Fill(50); InputImageType::IndexType index; index.Fill(10); InputImageType::RegionType region; region.SetSize(size); region.SetIndex(index); reader->SetFileName(inputName); canny->SetInput( reader->GetOutput() ); rescaler->SetInput(canny->GetOutput()); rescaler->SetOutputMinimum(0); rescaler->SetOutputMaximum(255); writer->SetInput(rescaler->GetOutput() ); writer->SetFileName(outputName); writer->Update(); /**************** * PROCESSING OVER AN EXTRACT ****************/ ReaderType::Pointer reader2 = ReaderType::New(); WriterType::Pointer writer2 = WriterType::New(); CannyType::Pointer canny2 = CannyType::New(); RescalerType::Pointer rescaler2 = RescalerType::New(); ExtractType::Pointer extract = ExtractType::New(); InputImageType::SizeType size2; size2.Fill(50); InputImageType::IndexType index2; index2.Fill(atoi(argv[4])); InputImageType::RegionType region2; region2.SetSize(size2); region2.SetIndex(index2); reader2->SetFileName(inputName); extract->SetExtractionRegion(region2); extract->SetInput( reader2->GetOutput() ); canny2->SetInput( extract->GetOutput() ); rescaler2->SetInput(canny2->GetOutput()); rescaler2->SetOutputMinimum(0); rescaler2->SetOutputMaximum(255); writer2->SetInput(rescaler2->GetOutput() ); writer2->SetFileName(outputExtractName); writer2->Update(); return 1; }