[Insight-users] Filtering Examples:ThresholdImageFilter.cxx
Pedro Madrigal Bayonas
pmb_007 at hotmail.com
Tue Apr 22 03:58:21 EDT 2008
Hi,
I´m new user, when I compile and execute ThresholdImageFilter.exe, nothing happens.
what I must change in the code to read an image(for example mri.png) that is in the same directory of the .exe and put the ouptfiles there too??
Thanks!
/*=========================================================================
Program: Insight Segmentation & Registration Toolkit Module: $RCSfile: ThresholdImageFilter.cxx,v $ Language: C++ Date: $Date: 2005/08/31 13:55:22 $ Version: $Revision: 1.28 $
Copyright (c) Insight Software Consortium. All rights reserved. See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm 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
#ifdef __BORLANDC__#define ITK_LEAN_AND_MEAN#endif
#include "itkThresholdImageFilter.h"// Software Guide : EndCodeSnippet
#include "itkImage.h"#include "itkImageFileReader.h"#include "itkImageFileWriter.h"
int main( int argc, char *argv[]){
if( argc < 5 ) { std::cerr << "Usage: " << argv[0] << " inputImageFile "; std::cerr << " outputImageFile1 outputImageFile2 outputImageFile3" << std::endl; return EXIT_FAILURE; } // Software Guide : BeginLatex // // Then we must decide what pixel type to use for the image. This filter is // templated over a single image type because the algorithm only modifies // pixel values outside the specified range, passing the rest through // unchanged. // // Software Guide : EndLatex
// Software Guide : BeginCodeSnippet typedef unsigned char PixelType; // Software Guide : EndCodeSnippet
// Software Guide : BeginLatex // // The image is defined using the pixel type and the dimension. // // Software Guide : EndLatex
// Software Guide : BeginCodeSnippet typedef itk::Image< PixelType, 2 > ImageType; // Software Guide : EndCodeSnippet
// Software Guide : BeginLatex // // The filter can be instantiated using the image type defined above. // // Software Guide : EndLatex
// Software Guide : BeginCodeSnippet typedef itk::ThresholdImageFilter< ImageType > FilterType; // Software Guide : EndCodeSnippet
// Software Guide : BeginLatex // // An \doxygen{ImageFileReader} class is also instantiated in order to read // image data from a file. // // Software Guide : EndLatex
// Software Guide : BeginCodeSnippet typedef itk::ImageFileReader< ImageType > ReaderType; // Software Guide : EndCodeSnippet
// Software Guide : BeginLatex // // An \doxygen{ImageFileWriter} is instantiated in order to write the // output image to a file. // // Software Guide : EndLatex
// Software Guide : BeginCodeSnippet typedef itk::ImageFileWriter< ImageType > WriterType; // Software Guide : EndCodeSnippet
// Software Guide : BeginLatex // // Both the filter and the reader are created by invoking their \code{New()} // methods and assigning the result to SmartPointers. // // Software Guide : EndLatex
// Software Guide : BeginCodeSnippet ReaderType::Pointer reader = ReaderType::New(); FilterType::Pointer filter = FilterType::New(); // Software Guide : EndCodeSnippet
WriterType::Pointer writer = WriterType::New(); writer->SetInput( filter->GetOutput() ); reader->SetFileName( argv[1] );
// Software Guide : BeginLatex // // The image obtained with the reader is passed as input to the // \doxygen{ThresholdImageFilter}. // // \index{itk::ThresholdImageFilter!SetInput()} // \index{itk::FileImageReader!GetOutput()} // // Software Guide : EndLatex
// Software Guide : BeginCodeSnippet filter->SetInput( reader->GetOutput() ); // Software Guide : EndCodeSnippet
// Software Guide : BeginLatex // // The method \code{SetOutsideValue()} defines the intensity value to be // assigned to those pixels whose intensities are outside the range defined // by the lower and upper thresholds. // // \index{itk::ThresholdImageFilter!SetOutsideValue()} // \index{SetOutsideValue()!itk::ThresholdImageFilter} // // Software Guide : EndLatex
// Software Guide : BeginCodeSnippet filter->SetOutsideValue( 0 ); // Software Guide : EndCodeSnippet
// Software Guide : BeginLatex // // The method \code{ThresholdBelow()} defines the intensity value below // which pixels of the input image will be changed to the \code{OutsideValue}. // // \index{itk::ThresholdImageFilter!ThresholdBelow()} // Software Guide : EndLatex
// Software Guide : BeginCodeSnippet filter->ThresholdBelow( 180 ); // Software Guide : EndCodeSnippet
// Software Guide : BeginLatex // // The filter is executed by invoking the \code{Update()} method. If the // filter is part of a larger image processing pipeline, calling // \code{Update()} on a downstream filter will also trigger update of this // filter. // // Software Guide : EndLatex
// Software Guide : BeginCodeSnippet filter->Update(); // Software Guide : EndCodeSnippet
writer->SetFileName( argv[2] ); writer->Update();
// Software Guide : BeginLatex // // The output of this example is shown in // Figure~\ref{fig:ThresholdTransferFunctionBelow}. The second operating mode of // the filter is now enabled by calling the method // \code{ThresholdAbove()}. // // Software Guide : EndLatex
// Software Guide : BeginCodeSnippet filter->ThresholdAbove( 180 ); filter->Update(); // Software Guide : EndCodeSnippet
writer->SetFileName( argv[3] ); writer->Update();
// Software Guide : BeginLatex // // Updating the filter with this new setting produces the output shown in // Figure~\ref{fig:ThresholdTransferFunctionAbove}. The third operating // mode of the filter is enabled by calling \code{ThresholdOutside()}. // // Software Guide : EndLatex
// Software Guide : BeginCodeSnippet filter->ThresholdOutside( 170,190 ); filter->Update(); // Software Guide : EndCodeSnippet
writer->SetFileName( argv[4] ); writer->Update();
// Software Guide : BeginLatex // // The output of this third, ``band-pass'' thresholding mode is shown in // Figure~\ref{fig:ThresholdTransferFunctionOutside}. // // The examples in this // section also illustrate the limitations of the thresholding filter for performing // segmentation by itself. These limitations are particularly noticeable // in noisy images and in images lacking spatial uniformity, as is the case // with MRI due to field bias. // // \relatedClasses // \begin{itemize} // \item \doxygen{BinaryThresholdImageFilter} // \end{itemize} // // Software Guide : EndLatex
return EXIT_SUCCESS;}
_________________________________________________________________
La vida de los famosos al desnudo en MSN Entretenimiento
http://entretenimiento.es.msn.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20080422/45b95ba0/attachment.htm>
More information about the Insight-users
mailing list